我已经阅读了有关此主题的几篇文章,但我仍然想与社区分享一些疑问。
我想为我开发的应用程序DaDaBIK添加完整的utf-8支持;该应用程序可以与不同的 DBMS(如 MySQL、PostgreSQL、SQLite)一起使用。数据库中使用的字符集可以是 ANY。我不能设置或假设字符集。
我的方法是使用 iconv 函数转换我从 utf-8 中的数据库读取的所有内容,然后在我必须写入数据库时将其转换回原始字符集。这将允许我假设我正在使用 utf-8。
您可能知道,问题在于 PHP 本身不支持 utf-8,即使假设使用 mbstring,也有(根据http://www.phpwact.org/php/i18n/utf-8)几个 PHP 函数可能会产生 utf-8 问题并且没有 mbstring 对应关系,例如 PREG 扩展、strcspn、trim、ucfirst、ucwords....
由于我使用了一些外部库,例如 adodb 和 htmLawed,我无法控制所有源代码......在这些库中,有几种使用这些函数的案例......你有什么建议吗?最重要的是,wordpress 等非常流行的应用程序如何处理这个(恕我直言大)问题?我怀疑他们在代码中没有任何“修剪”......他们只是冒险(例如数据损坏)或者有什么我看不到?
非常感谢。