我通过web表单(使用UTF-8)接受用户输入,将其保存到MySQL数据库(使用UTF-8字符集),然后生成一个文本文件(编码为UTF-8)。我想知道在使用UTF-8而不是类似UCS-2的编码时是否存在文本损坏的风险?在这种情况下,使用UTF-8是否足够好?
更重要的是,它可能是你应该考虑使用的唯一编码。
这方面有一些很好的阅读资料:
Joel Spolsky 的《关于 Unicode 和字符集,每个软件开发人员绝对、肯定必须知道的绝对最低限度(没有借口!)》
如果你正在处理大量的亚洲文本(比拉丁文本更多),你可能需要考虑使用UTF-16编码。UTF-8可以准确地表示Unicode字符集的所有字符,但它更适用于主要是ASCII字符的文本。而UTF-16在整个基本多语言平面范围内能够更有效地压缩。
但是UTF-8已经足够好了——仅仅因为你使用UTF-8而不是UTF-16,并不会导致数据损坏。
它与天城体一起工作得非常出色。