PHP UTF8解码不适用于python返回的输出

罗汉

我基本上从python服务器收到回复,我正在做的是发送文章,而python代码向我发送了文章中的重要标签。我得到的答复是这样的

"keywords": "[u'Smartphone', u'Abmessung', u'Geh\xe4userand']"

所以我想utf8解码Geh \ xe4userand字符串。我在某篇文章中读到我必须将其放入“”并进行解码,但无法正常工作。我的代码是

$tags = str_replace("'",'"',$tags);
$tags = preg_replace('/\[*\s*u(".*?")\]*/', "$1", $tags);
$tags = explode(',', $tags);
    foreach ($tags as $tag) {
        pr(utf8_encode($tag));
    }
    die;

我得到的输出是

<pre>"Smartphone"</pre><pre>"Abmessung"</pre><pre>"Geh\xe4userand"</pre>

我无权访问python代码。

马丁·彼得斯(Martijn Pieters)

如果完全可行,请改成Python代码;否则,请改编。它会向您发送带有Unicode转义符(而不是UTF8)的Python列表文字。理想情况下,它应该向您发送JSON。

\xe4字符序列编码码点U + 00E4,但它是使用4个文字的ASCII字符(\xe4)。

其他Python文字规则:

  • 根据内容的不同,它将使用单引号或双引号,并优先使用单引号。因此,您可能必须处理转义的\'单引号。
  • 换行,回车和tab被逃脱了\n\r\t分别。
  • 所有其他不可打印的Latin-1字符均转义为\xhh代码点的两位十六进制编码。
  • 如果文字以uUnicode字符串而不是字节字符串开头,并且Latin-1子集之外但基本多语言平面的一部分的任何代码点都转义为\uhhhh,则代码点的四位十六进制编码范围为U + 0100至U + FFFF
  • 在Unicode字符串中,您还会找到\Uhhhhhhhh,一个八位十六进制编码的非BMP Unicode代码点,范围从U + 00010000到U + 0001FFFF。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章