PHP mb_substr() not working correctly?

前端 未结 2 2038
野趣味
野趣味 2021-02-12 12:11

This code

print mb_substr(\'éxxx\', 0, 1);

prints an empty space :(

It is supposed to print the first character, é. This seems

相关标签:
2条回答
  • 2021-02-12 12:41

    Try passing the encoding parameter to mb_substr, as such:

    print mb_substr('éxxx', 0, 1, 'utf-8');
    

    The encoding is never detected automatically.

    0 讨论(0)
  • 2021-02-12 12:55

    In practice I've found that, in some systems, multi-byte functions default to ISO-8859-1 for internal encoding. That effectively ruins their ability to handle multi-byte text.

    Setting a good default will probably fix this and some other issues:

    mb_internal_encoding('UTF-8');
    
    0 讨论(0)
提交回复
热议问题