什么时候需要在PHP中启用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。 您需要使

mbstring扩展为简体中文提供了增强的支持, 除了日语,还有繁体中文、韩语和俄语

我试着在我的PHP页面上显示一个日语字符(我从www.google.co.jp复制的),它显示得很好。显示UTF-32字符时是否需要使用mbstring

编辑:

<?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
函数的设置,并且独立于这些设置。