gpt4 book ai didi

character-encoding - 字符编码和问题

转载 作者:行者123 更新时间:2023-12-04 07:51:41 24 4
gpt4 key购买 nike

即使在今天,人们也经常会看到非常频繁的字符编码问题。以最近的职位发布为例:

Bad Encoding

(注意:这是一个例子,不是垃圾招聘帖... :-)

我最近在网站、流行的 IM 程序和 CNN 的背景图片中看到了确切的错误。

我的两部分问题:

  • 是什么导致了这个特殊的、常见的编码问题?
  • 作为开发人员,我应该如何处理用户输入以避免常见的编码问题,例如这个?如果这个问题需要简化以提供有意义的答案,假设内容是通过网络浏览器输入的。

最佳答案

What causes this particular, common encoding issue?

当使用错误的字符集进行字符和字节之间的转换时,就会发生这种情况。计算机将数据作为字节处理,但为了以一种对人类有意义的方式表示数据,必须将其转换为字符(字符串)。这种转换是基于一个字符集进行的,其中有许多不同的字符集。

在特定的 ' 示例中,这是 Unicode Character 'RIGHT SINQLE QUOTATION MARK' (U+2019) 的典型 CP1252 表示形式 使用 UTF-8 读取。在 UTF-8 中,该字符存在于字节 0xE20x800x99 中。如果您检查 CP1252 codepage layout ,然后您会看到这些字节正好代表字符 â

这可能是由于网站没有正确读取原始源代码(为此应该使用 CP1252),或者显示具有错误 charset=CP1252 属性的 UTF-8 页面在 Content-Type 响应 header 中(或者属性丢失;在 Windows 机器上,将使用 CP1252 的默认字符集)。


As a developer, what should I do with user input to avoid common encoding issues like this one? If this question requires simplification to provide a meaningful answer, assume content is entered through a web browser.

确保您使用已知和预定义的字符集从任意字节流源(例如文件、URL、网络套接字等)读取字符。然后,确保您始终使用 Unicode 字符集(最好是 UTF-8)存储、写入和发送它。

如果您熟悉 Java(您的历史问题证实了这一点),您可能会发现 this article有用。

关于character-encoding - 字符编码和问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8421316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com