Linux 下看到一个乱码'�', 怎样推算其原先的编码?

一种编码的字符在另一种编码里显示成乱码的时候形态上有什么规律? '�'.charCodeAt() ; // JS 控制台返回 65533
关注者
26
被浏览
8,513
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

这个 � 是 U+FFFD REPLACEMENT CHARACTER。

它通常显示为实色菱形内含一个问号(在等宽字体中往往两侧的尖角被削去,变成六边形)。它是一个特殊的 Unicode 字符,在 Unicode 文本中用来表示当前字符不是合法的字符,或者不受字体支持。

如果返回给你的信息已经用 U+FFFD 了,那显然你没法推出原来是什么。如果这里只是一个显示为 U+FFFD 模样的字符,那么你或许可以看到编码。

出现 U+FFFD 往往意味着当前文本并非 Unicode 文本但被你当作 Unicode 文本来读取了。