【发布时间】:2012-05-02 23:39:25
【问题描述】:
我们有一个实时网络服务 iPhone 应用程序,其中来自服务器的内容从 MySQL 表中读取(类型:MyISAM;排序规则:latin1_swedish_ci),然后通过 PHP 通过 XML 发送。
直到昨天我们需要支持◉字符之前一切都运行良好。
在我们的 PHP 中的 XML 行中我们改变了
$xml_output = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
到$xml_output = "<?xml version=\"1.0\"?>\n";
瞧,随着那个角色,该应用开始支持表情符号和国际语言!
但问题是......现在当内容包含某些特定字符时,应用程序崩溃,我们无法检测到这些字符。
例如:当 MySQL 字段有这个 'â¤ðŸ'~ðŸ'UserFoo🌹â™' 字符串时,应用程序崩溃。 这个例子中奇怪的字符应该是一些表情符号字符。
我相信这是一些与编码相关的问题,但不知道如何设置它 - 从使用 PHP 插入到表中然后通过 XML 获取。
如何设置整个流程?此外,如果您可以为初学者提供一些资源,该资源可以描述整个事物并支持表情符号,那将是非常棒的。
PS:我阅读了this question 并遵循了建议,但还无法修复。
【问题讨论】:
-
究竟是什么崩溃了?如果是应用程序,这可能与 PHP 完全无关。
-
应用程序崩溃..但它与字符有关,好像我只是在 xml 行中恢复上述更改,不会发生崩溃但字符显示很奇怪。
-
我会恢复编码属性,也许试试: $xml_output = "\n";
-
@BufferStack:这清楚地表明应用程序崩溃是可远程利用的,但并不是远程数据是导致崩溃的原因。崩溃只能是内部的,不能是外部的。崩溃只会使您的应用程序中的缺陷可见。您现在应该先集中精力修复缺陷,然后再做任何其他事情。很高兴您找到了这个并且您已经知道如何重现崩溃!
-
@hakre:谢谢,但崩溃与上述问题有关。我可以解决编码问题,然后崩溃也得到修复。我无法理解我应该在应用程序方面做些什么改变?!
标签: php iphone mysql xml character-encoding