什么时候需要在PHP中启用mbstring?
mbstring扩展为简体中文提供了增强的支持, 除了日语,还有繁体中文、韩语和俄语 我试着在我的PHP页面上显示一个日语字符(我从www.google.co.jp复制的),它显示得很好。显示UTF-32字符时是否需要使用mbstring 编辑:什么时候需要在PHP中启用mbstring?,php,unicode,wamp,mbstring,Php,Unicode,Wamp,Mbstring,mbstring扩展为简体中文提供了增强的支持, 除了日语,还有繁体中文、韩语和俄语 我试着在我的PHP页面上显示一个日语字符(我从www.google.co.jp复制的),它显示得很好。显示UTF-32字符时是否需要使用mbstring 编辑: <?php echo "भ"; $s = strlen("भ"); echo $s; ?> 如何使第二行代码正常工作 PS:我已将PHP默认字符集更改为UTF-8。 您需要使
<?php
echo "भ";
$s = strlen("भ");
echo $s;
?>
如何使第二行代码正常工作
PS:我已将PHP默认字符集更改为UTF-8。- 您需要使用
字符串函数代替常规字符串函数,例如mb_
而不是mb_substr
。如果不使用常规字符串函数,则substr
函数也没有用处mb
- 如果您只是传递文本,而PHP没有对该文本做任何处理,那么就不需要使用
函数mb
- 要使
函数正常工作,您必须告诉它们文本的编码方式。他们支持许多不同的编码,如果不告诉他们您使用的是哪种编码,他们的结果将是不正确的。您可以将该编码传递给每个mb
函数调用,例如mb\u
,也可以使用mb\u strlen($str,'UTF-8')
为所有mb\u内部编码('UTF-8')
mb\u>函数设置一次该编码
请参阅以获得全面的介绍。您所有的问题都会有一个“视情况而定”的答案。如果您一次只问一个问题,Stackoverflow也能发挥最佳效果。从-一些已经存在的问答开始。如果您打算处理任何Unicode字符串,您需要使用mbstring。如果您只是获取并打印恰好代表Unicode字符串的字节块,您就不需要它了。@Jon您能详细说明一下吗。我知道PHP不支持unicode。但是,当它(php)理解为1字节=1个字符时,它是如何呈现日语的呢?@John:它不是。PHP将字节传递给浏览器而没有意识到它们的真正含义,浏览器知道如何呈现文本。
如何使第二行代码正常工作?
使用mb_strlen
,这正是mbstring的目的。我想,既然我在php.ini中将默认字符集设置为UTF-8,我就不必在mb_uu函数中提供“UTF-8”。在php.ini中,您到底将哪个选项设置为UTF-8?看看这个选项的用途是什么:它独立于mb_u
函数的设置,并且独立于这些设置。