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

Php iOS和Android之间mysql中的编码冲突,php,mysql,encoding,utf-8,Php,Mysql,Encoding,Utf 8,我继承了对现有应用程序系统的支持,该系统由两个移动应用程序组成——iOS和由php API控制的Android+mysql db 使用这两种应用程序的用户可以在mysql表中读写字符串,通常使用特定于国家的字符,如德语或西班牙语 DB表具有utf8\U unicode\U ci编码 php API文件中的mb_detect_编码方法声明iOS和Android字符串都是UTF-8 现在,进入问题。一段时间后,在iOS和Android中,特殊字符插入db的方式不同。我找不到合适的方法将Android

我继承了对现有应用程序系统的支持,该系统由两个移动应用程序组成——iOS和由php API控制的Android+mysql db

使用这两种应用程序的用户可以在mysql表中读写字符串,通常使用特定于国家的字符,如德语或西班牙语

DB表具有utf8\U unicode\U ci编码

php API文件中的mb_detect_编码方法声明iOS和Android字符串都是UTF-8

现在,进入问题。一段时间后,在iOS和Android中,特殊字符插入db的方式不同。我找不到合适的方法将Android字符串转换成与iOS字符串类似的、与json_encode兼容的字符串。我尝试了各种选项,最接近的一个是当我简单地运行utf8_encode$android_string时,但仍然只有一些字符以与iOS相同的方式编码

例如:

源字符串-óśćąę
来自iOS的db内容-ÃÅ›‡Ä…Ä™ 试着修复Android应用程序,让它首先发送正确的UTF-8编码的数据,这不是更好吗?当然,这会更好,Android开发人员现在正在研究它。但该应用程序已经发布了一段时间,并且拥有大量用户,因此这是一个向后兼容性的问题。那么,我建议在进行任何编码转换并将其发送到数据库之前,捕获一些从Android应用程序发送的内容,并查看十六进制字节值,尝试找出这些内容的编码方式事实上,请进。说得好!就这样。。。看起来Android中已经丢失了一些独特的代码,所以utf8_编码工作正常,但一些独特的字符从未离开Android设备。。。