【问题标题】:Question mark( �) displaying instead of each Bengali unicode character. How to fix it?问号 (�) 显示而不是每个孟加拉语 unicode 字符。如何解决?
【发布时间】:2016-05-24 10:17:33
【问题描述】:

问题比较混乱,比如,

当我尝试显示孟加拉语 unicode 单词时,'কলম' 与此

 $data=$_POST['data'];
 echo $data;

然后它会按照我的意愿正确显示“কলম”这个词,

但是当我用这个逐个字符分割单词时

    for($i=0;$i<3;$i++)
    {
        echo $data[$i];         
        echo "+";
    }

然后它显示'�+�+�+'而不是像这样显示'ক+ল+ম+'。

如何解决这个问题。谢谢。

关于信息,我已经在 head 中声明了 charset utf-8。

【问题讨论】:

  • 如果您看到该字符 (� U+FFFD "REPLACEMENT CHARACTER"),这通常意味着文本本身以某种形式的单字节编码进行编码,但以一种 unicode 编码(UTF8 或UTF16).add header("Content-Type: text/plain; charset=ISO-8859-1");

标签: php unicode utf-8 special-characters


【解决方案1】:

请改用mb_substr($data, $i, 1)。您正在使用多字节字符串。

【讨论】:

    【解决方案2】:

    试试这个希望这会奏效

    <?php
    $data = $_POST['data'];
    $strlen = mb_strlen( $data );
    for( $i = 0; $i <= $strlen; $i++ ) {
        $char = mb_substr( $str, $i, 1 );
        echo $char;
        echo '+';
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-23
      • 2016-05-24
      • 1970-01-01
      相关资源
      最近更新 更多