我正在构建一个iOS应用程序,其中包括将数据发送到PHP服务器。
我遇到了字符串jeremyö
中的重音字符问题,这些字符来自:
string(7) "jeremyö"
string(8) "jeremyö"
当用作登录时,这会破坏我的所有内容。
您对我如何解决此问题有任何暗示吗?
PHP部分仅为UTF-8(Drupal 7后端),我不知道iOS上使用的编码,但我猜它是UTF-8或UTF-16。
谢谢, 的Jérémy
答案 0 :(得分:1)
这听起来更像是unicode规范化然后编码。在unicode中,像ö这样的角色可以用两种方式表示。它可以是U+00F6
(带有分音符的小o)或者它可以是两个字符:正常o和组合分音符(U + 0308)。
在iOS上有一些方法,如NSString的precomposedStringWithCanonicalMapping
,decomposedStringWithCanonicalMapping
等允许你在这些不同的表示之间转换字符串,在php中可能有类似的方法。
如果您使用这些字符串作为数据库的查询参数,那么您的数据库可能具有控制字符串相等意味着什么的设置(对于mysql,它是collation属性)