gpt4 book ai didi

javascript - 使用 FileReader 的 readAsBinaryString 和 readAsText 之间的区别

转载 作者:太空狗 更新时间:2023-10-29 14:42:44 24 4
gpt4 key购买 nike

举个例子,当我使用 FileReader API 从文件中读取 π 字符 (\u03C0) 时,当我使用 FileReader 读取它时,我会将 pi 字符返回给我.readAsText(blob) 这是预期的。但是当我使用 FileReader.readAsBinaryString(blob) 时,我得到的结果是 \xcf\x80,它似乎与 pi 字符没有任何可见的相关性。这是怎么回事? (这可能和UTF-8/16的编码方式有关...)

最佳答案

FileReader.readAsText 将文件的编码考虑在内。特别是,由于您的文件以 UTF-8 编码,因此每个字符可能有多个字节。将其作为文本读取,UTF-8 将按原样读取,您将获得字符串。

另一方面,

FileReader.readAsBinaryString 完全按照它说的做。它逐字节读取文件。它不识别多字节字符,这对于二进制文件(基本上除了文本文件之外的任何文件)来说尤其是个好消息。由于 π 是一个双字节字符,因此您会在字符串中得到组成它的两个单独字节。

这种差异在很多地方都可以看出。特别是当编码丢失并且您看到像 é 这样的字符显示为 É 时。

关于javascript - 使用 FileReader 的 readAsBinaryString 和 readAsText 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9346052/

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