Javascript 如何Ā;转换为两个字符-Ä€;-在文本文件中打开时,在Chrome中

Javascript 如何Ā;转换为两个字符-Ä€;-在文本文件中打开时,在Chrome中,javascript,text,character-encoding,blob,arraybuffer,Javascript,Text,Character Encoding,Blob,Arraybuffer,我有一个包含以下内容的文本文件: Ā 此文件以UTF-8编码格式保存,值2字节 现在的问题是,当我使用Google Chrome打开此文件时,它会显示两个字符,如下所示: Ä€ 我无法理解这两个角色是从哪里来的? 当我使用JavaScript中的Blob()检索如上所示的文本文件内容,然后将其转换为ArrayBuffer,然后转换为Uint8Array,类型化数组有以下两个元素:[196,128] 我完全可以理解这两个数字是从哪里来的,但不能理解128这个数字是如何产生欧元字符的。出于某种原

我有一个包含以下内容的文本文件:

Ā
此文件以UTF-8编码格式保存,值2字节

现在的问题是,当我使用Google Chrome打开此文件时,它会显示两个字符,如下所示:

Ä€
我无法理解这两个角色是从哪里来的?

当我使用JavaScript中的
Blob()
检索如上所示的文本文件内容,然后将其转换为
ArrayBuffer
,然后转换为
Uint8Array
,类型化数组有以下两个元素:
[196,128]


我完全可以理解这两个数字是从哪里来的,但不能理解128这个数字是如何产生欧元字符的。

出于某种原因,Chrome决定将您的文件解码为@georg,请您进一步说明。我当然很感激。Chrome打开了您的文件,并根据其内部算法决定该文件应解释为Win-1252。由于这是一种单字节编码(1字节=1个字符),根据上图,Chrome显示两个字符,代码为196和128,分别为Ä和€。因此Chrome不使用UTF-8。。但是,它将如何编码超出Win-1252范围的特殊字符?编码和unicode是复杂的主题。这篇经典文章应该是一个很好的起点: