Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php iphone sdk\Uxxx到utf-8_Php_Iphone_Mysql_Ios5_Utf 8 - Fatal编程技术网

Php iphone sdk\Uxxx到utf-8

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中找不到任何可以这

我正在开发一个iphone应用程序,通过SOAP将用户信息发送到我的服务器,并将其作为UTF-8字符串存储在数据库中

问题是,当服务器接收到字符串时,这些字符串将以Unicode格式发送,格式为.\U00fc,应该是一个“ü”。 包含“\U00fc”的字符串已正确存储在数据库中。但当我读取数据库时,我只得到“U00fc”\不见了

但为了更好地阅读选项,我实际上希望将“\U00fc”转换为一个“ü”,并将其存储到数据库中,然后在阅读数据库时,将其转换回iPhone

我只是在PHP中找不到任何可以这样做的函数。。。我很确定像这样的东西肯定已经存在了,而不是我必须重新实现整个unicode表


如果您知道任何建议,如果您能帮助我,我将非常高兴。

如果您的输入坚持使用大写字母
\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