Php iphone sdk\Uxxx到utf-8
我正在开发一个iphone应用程序,通过SOAP将用户信息发送到我的服务器,并将其作为UTF-8字符串存储在数据库中 问题是,当服务器接收到字符串时,这些字符串将以Unicode格式发送,格式为.\U00fc,应该是一个“ü”。 包含“\U00fc”的字符串已正确存储在数据库中。但当我读取数据库时,我只得到“U00fc”\不见了 但为了更好地阅读选项,我实际上希望将“\U00fc”转换为一个“ü”,并将其存储到数据库中,然后在阅读数据库时,将其转换回iPhone 我只是在PHP中找不到任何可以这样做的函数。。。我很确定像这样的东西肯定已经存在了,而不是我必须重新实现整个unicode表Php iphone sdk\Uxxx到utf-8,php,iphone,mysql,ios5,utf-8,Php,Iphone,Mysql,Ios5,Utf 8,我正在开发一个iphone应用程序,通过SOAP将用户信息发送到我的服务器,并将其作为UTF-8字符串存储在数据库中 问题是,当服务器接收到字符串时,这些字符串将以Unicode格式发送,格式为.\U00fc,应该是一个“ü”。 包含“\U00fc”的字符串已正确存储在数据库中。但当我读取数据库时,我只得到“U00fc”\不见了 但为了更好地阅读选项,我实际上希望将“\U00fc”转换为一个“ü”,并将其存储到数据库中,然后在阅读数据库时,将其转换回iPhone 我只是在PHP中找不到任何可以这
如果您知道任何建议,如果您能帮助我,我将非常高兴。如果您的输入坚持使用大写字母
\U
,您可以使用以下内容进行修复:
<?php
header( "Content-Type: text/plain; charset=UTF-8");
function fixEscapeSequence( $str ) {
return preg_replace( '/\\\U([a-fA-F0-9]{4})/', '\u$1', $str );
}
echo json_decode(fixEscapeSequence('"M\U00FCller"'));
//Müller
您似乎正在发送JSON数据。使用
json\u decode()。。。当我发送字符串Müller时,它实际上发送了M\U00fcller。iOS正在将ü翻译成\U00fc,因为此表显示了以下标志:嗨,佩卡,谢谢你的提示。。。实际上字符串不是json编码的,但我尝试使用json_decode()函数,该函数在我使用:json_decode(“'M\u00fcller')时可以工作,但问题是我得到了:M\u00fcller(大U)。。。当我使用:json_decode('M\U00fcller')时,我得到空值。。。如果我使用:strtolower('M\U00fcller'),它会工作,但是整个字符串都是小写的……我明白了。那么编码就不完全一样了,使用json\u decode
可能不是最好的主意。嗯,如果你能找到这个特定的编码方法叫什么,你可以在PHP中询问/寻找它的解码方法。我在Stack Overflow上看到过关于这方面的问题。嗨,Esailija,这也是我一直在想的,并试图完成正则表达式。。但无法使它工作。非常感谢你的建议!我想这正是我必须要做的。干杯谢谢你的解决方案。我的问题是,我们的网站是在PHP5.2上,所以我不能使用JSON_UNESCAPED_UNICODE。总之,太棒了。再次感谢!
function uToUTF8( $str ) {
$needle = array( "\\", '"');
$repl = array( "\\\\", '\\"' );
$str = str_replace( $needle, $repl, $str );
return json_decode( preg_replace( '/\\\\\\\U([a-f0-9]{4})/i', '\u$1', "\"{$str}\"" ) );
}
echo uToUTF8( 'M\u00FCller');
//Müller
echo uToUTF8( 'M\U00FCller');
//Müller