1

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

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

DB 表有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 内容 - óśćąę <- 预期
  • 来自 Android 的 db 内容 - ó???? <- json_encode 返回 null
  • 来自 utf8(Android) 的 db 内容 - ó???? <- json_encode 可以,但返回?,而不是字母

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

4

0 回答 0