在PHP5.3中处理UTF-8字符串

在PHP5.3中处理UTF-8字符串,php,utf-8,character-encoding,Php,Utf 8,Character Encoding,我们正在使用一些第三方php库函数,在转换utf-8字符串时遇到一些困难 经过一些实验,我们得到的结果如下: (1) 以下内容将在浏览器(我们使用Firefox)中打印正确的unicode单词(它是一个单词): $s=“\345\244\247”; echo$s; 大 比如: 输出大问题是,您正在逃避斜杠 使用以下命令: $s2 = str_replace("\\","\",$s2); 如果唯一的问题是双\\可以设置$s2=str\u replace(“\\”,“\”,$s2);这不会改变任

我们正在使用一些第三方php库函数,在转换utf-8字符串时遇到一些困难

经过一些实验,我们得到的结果如下:

(1) 以下内容将在浏览器(我们使用Firefox)中打印正确的unicode单词(它是一个单词):

$s=“\345\244\247”;
echo$s;
大  比如:


输出<代码>大

问题是,您正在逃避斜杠

使用以下命令:

$s2 = str_replace("\\","\",$s2);

如果唯一的问题是双\\可以设置$s2=str\u replace(“\\”,“\”,$s2);这不会改变任何事情。到那时,字符串包含带\-的文本,它不再是PHP解释的文本。
$s2 = "\\345\\244\\247";
echo $s2;

\345\244\247  <-- the print out will contain escape character so the unicode isn't showing correctly

function _conv($oct) {
    return chr(octdec($oct[1]));
}

$es = "\\345\\244\\247";
$es = preg_replace_callback('@\\\\(\d{3})@', '_conv', $es);

echo $es;

$s2 = str_replace("\\","\",$s2);