编码unicode字符?

时间:2016-03-07 12:33:56

标签: java encoding character-encoding

我从第三方获取文档,我在浏览器上显示字符集utf-8

  Content-Type: text/html; charset=utf-8

但有些字符显示为垃圾。我的理解是即使他们发送unicode字符,utf-8编码也是合适的。 我应该将编码更改为其他内容还是发送端的问题。使用ANSI / ASCII编码发送方。我相信他们应该使用utf 8 因为ANSI / ASCII不适合unicode字符。这是对的吗?

1 个答案:

答案 0 :(得分:1)

计算机最终只能处理1和0(数字)。要在计算机中表示文本,您需要将数字映射到字符。这正是character encoding的用途。

例如,ASCII字符编码指定65 = A,66 = B等

有许多不同的字符编码。 ASCII是一种非常古老且有限的字符编码,只有127个字符的空间。

UTF-8是一种不同的字符编码,可以编码Unicode标准中的所有字符,其中包含数千个字符。

如果您的HTML页面指定页面上的文本是使用UTF-8编码的,但实际上它使用不同的编码,那么您会在屏幕上看到垃圾 - 您告诉浏览器它是UTF- 8但它真的不是这样,它会以错误的方式解释页面。如果你得到这个,那么它几乎肯定是发送方面的一个问题 - 发送方必须确保它确实使用UTF-8对文本进行编码,如果它在HTML标题中所说的那样。

UTF-8适用于任何类型的文本,在我看来,这应该是您默认选择的字符编码;如果你有充分的理由,只能使用别的东西。

UTF-8与ASCII兼容(ASCII是UTF-8的子集) - 如果发送方真的发送ASCII编码文本,那么使用UTF-8显示它应该没有问题。如果你得到奇怪的字符,那么发送方很可能不会真正使用ASCII。