Unicode格式的区别?

时间:2011-11-04 12:38:42

标签: unicode utf-8 string-formatting

我在将一些unicode数据上传到数据库时发现了一些问题。当内容通过textarea上传时,会以क格式存储,但是当您亲自键入或粘贴unicode并将其硬编码到php中时,它将以à¤格式存储。但对于两者而言,unicode字符是相同的

现在请告诉我unicode字符的不同格式之间的区别。以及它们如何影响发展。这些格式必须有一些限制。

2 个答案:

答案 0 :(得分:2)

<强>&安培; #2325; 是markup used in HTML to represent a Unicode character

如果您在php源文件中硬编码,请确保使用编辑器打开它,正确显示包含unicode字符的文本文件。

http://www.joelonsoftware.com/articles/Unicode.html是了解unicode基础知识的好地方。

क的UTF-8编码具有字节序列 E0 A4

现在,如果有人将此解释为8位Latin encoding,则会认为它是两个字符

您将在上面的链接表中看到E0是à而A4是¤

答案 1 :(得分:2)

  

当通过textarea上传内容时,将以क格式存储,

表单不应以字符引用(&#...;)格式提交内容。

实际上,它们在大多数当前的浏览器中都有...但只有在他们无法以任何其他方式提交相关字符时才会这样做。在这种情况下,您无法判断用户最初是键入还是&#2325;,这是一种有损编码。

要避免这种情况,请确保在支持所有可能的Unicode字符的字符集中为页面提供服务。实际上,这意味着始终使用UTF-8,并使用标头中的Content-Type: text/html;charset=utf-8标头和/或<meta http-equiv="Content=Type" content="text/html;charset=utf-8"/>元素为您的网页提供服务。然后,您将以简单,无损的UTF-8格式获取所有字符。