Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Character encoding 字符编码和’;问题_Character Encoding_Cross Platform_Mojibake - Fatal编程技术网

Character encoding 字符编码和’;问题

Character encoding 字符编码和’;问题,character-encoding,cross-platform,mojibake,Character Encoding,Cross Platform,Mojibake,即使在今天,人们也经常会频繁地看到字符编码问题。以最近的这一职位为例: (注意:这是一个示例,不是垃圾邮件职位…:-) 我最近在网站上、流行的即时通讯节目中以及CNN的背景图片中都看到了这一错误 我的问题分为两部分: 是什么导致了这种特殊的、常见的编码问题 作为开发人员,我应该如何处理用户输入以避免常见的编码问题,如 这个?如果此问题需要简化以提供 有意义的回答,假设内容是通过web浏览器输入的 是什么导致了这种特殊的、常见的编码问题 当使用错误的字符集进行字符和字节之间的转换时,将发生这

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

注意:这是一个示例,不是垃圾邮件职位…:-)

我最近在网站上、流行的即时通讯节目中以及CNN的背景图片中都看到了这一错误

我的问题分为两部分:

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

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

在特定的
中™示例,这是使用UTF-8读取的
的典型CP1252表示形式。在UTF-8中,该字符存在于字节
0xE2
0x80
0x99
中。如果您检查,那么您将看到这些字节正好代表字符

这可能是由于网站没有正确读取原始源代码(应该使用CP1252),或者在
内容类型
响应标题中显示了错误的
charset=CP1252
属性的UTF-8页面(或者该属性丢失;在Windows计算机上,将使用默认字符集CP1252)


作为一名开发人员,我应该如何处理用户输入以避免像这样的常见编码问题?如果这个问题需要简化以提供有意义的答案,那么假设内容是通过web浏览器输入的

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

如果您熟悉Java(您的问题历史记录证实了这一点),您可能会发现它很有用