【问题标题】:Possible character encoding issues?可能的字符编码问题?
【发布时间】:2015-07-06 19:13:45
【问题描述】:

我正在制作一个简单的博客 Android 应用程序,用户可以在其中添加/查看博客。现在对于博客添加,有一个简单的文本视图,用户可以在其中添加博客内容(博客文本)。然后,该博客内容通过 HttpPost 传输到 php 脚本,然后将其存储在 MySQL 数据库中。

现在我的问题是用户可以将博客内容的文本复制粘贴到文本视图中。这种复制粘贴的来源可以是从互联网页面到教科书的任何地方。文本也可以是任何字体、颜色等。这可能会导致字符编码问题,因为每当我尝试将文本复制粘贴到博客正文中时,博客提交都会失败……否则它工作正常。我的 MySQL 数据库排序规则是 UTF-8。

我的问题是:如何将任何可能来源的任何编码的文本转换为 utf-8?

【问题讨论】:

  • 没有可靠的 100% 万无一失的方法来确定一段文本的编码方式。例如cat 可以是 iso8859 或 utf8 - 绝对没有办法知道,因为对于基本的“ascii”文本,它在 ascii 类型的字符集和 utf 中是相同的。
  • 页面上有<meta ... charaset=utf-8>吗?

标签: php android mysql encoding utf-8


【解决方案1】:

看看https://github.com/neitanod/forceutf8

来自他们的文档:

您不需要知道字符串的编码是什么。它可以是 Latin1 (iso 8859-1)、Windows-1252 或 UTF8,或者字符串可以混合使用它们。 \ForceUTF8\Encoding::toUTF8() 会将所有内容都转换为 UTF8。

有时您必须处理在编码方面不可靠的服务,可能将 UTF8 和 Latin1 混合在同一个字符串中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多