在iOS和Android之间编码mysql中的冲突

时间:2013-09-14 11:38:39

标签: php mysql encoding utf-8

我继承了对包含两个移动应用程序的现有应用系统的支持 - 在iOS和Android +由php API控制的mysql数据库上。

使用这两个应用程序的用户可以读取和写入mysql表的字符串,通常使用特定于国家/地区的字符,如德语或西班牙语。

数据库表有 utf8_unicode_ci 编码。

php API文件中的

mb_detect_encoding()方法声称iOS和Android字符串都是UTF-8。

现在,转向问题。经过一段时间后,发生了在iOS和Android情况下以不同方式插入db的特殊字符。我找不到将Android字符串正确转换为iOS类似的方法(与json_encode兼容)。我尝试了各种选项,最接近的是当我只运行utf8_encode($ android_string)时,但仍然只有一些字符的编码方式与iOS相同。

示例:

  • 源字符串 - óśćąę
  • 来自iOS的
  • db内容 - óśćąę< - expected
  • 来自Android的db内容 - ó????< - json_encode返回null
  • 来自utf8(Android)的db内容 - ó????< - json_encode没问题,但返回?,而不是字母

你知道在php'Android'字符串中转换为与'iOS'相同的好方法吗?

0 个答案:

没有答案