【问题标题】:In PHP substring return �� these type of character?在 PHP 子字符串中返回 �� 这些类型的字符?
【发布时间】:2023-03-27 10:38:01
【问题描述】:

我想在 PHP 中获取字符串的第一个字符。但它会返回一些未知字符,例如�。为什么会这样?

$text = "अच्छी ाqस्थति में"; // Hindi String 
$char = $text[0];   // $text{0}; also try here .
echo $char;   // output like �

//expected Output अ

//Below code also used
$char = substr($text , 0 , 1);  // Getting same output

如果我使用 javascript,我发现我得到了完美的输出:

var text = "अच्छी ाqस्थति में"; // Hindi String 
var char = text.charAt(0);
console.log(char)   // output like अ

请任何人告诉我这个问题以及解决这个问题的方法?如果 charAt 和 substr 工作方式相同,为什么会出现这些错误?

【问题讨论】:

    标签: javascript php substr charat


    【解决方案1】:

    您应该使用mbstring 处理 unicode 字符串。

    $char = mb_substr($text, 0, 1, 'UTF-8'); // output अ
    

    如果需要,您可以将“UTF-8”替换为任何其他编码。

    PHP 默认不支持 unicode。请注意,如果您想使用它,您需要启用 mbstring。您可以通过检查是否加载了扩展来检查:

    if (extension_loaded('mbstring')) {
        // mbstring loaded
    }
    

    【讨论】:

      猜你喜欢
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 2022-10-12
      • 2010-11-11
      • 1970-01-01
      • 2020-11-01
      • 1970-01-01
      • 2014-03-17
      相关资源
      最近更新 更多