HTML5中,使用FileReader下的readAsText()读取一个含中文的txt格式文件出现乱码

HTML5中,使用FileReader下的readAsText()读取一个含中文的txt格式文件出现乱码,第1张

您好,此函数原型是

FileReader.readAsText(file, [encoding])

若encoding选择不填,则默认utf8编码.

而txt常见有3种编码, asni,utf8,gbk2312. 当然也不排除这3种编码外的N种编码

到这已经完全回答您的问题了.

扩展

如何解决这种情况呢? 您可以用个select 让用户选择对应的编码

其他文本类型的文件都存在着相同的编码问题

/*

* ArrayBuffer to String

* var str=Uint8ToString(new Uint8Array(arrayBufferData))

* */

function Uint8ToString(u8a){

var CHUNK_SZ = 0x8000

var c = []

for (var i=0i <u8a.lengthi+=CHUNK_SZ) {

c.push(String.fromCharCode.apply(null, u8a.subarray(i, i+CHUNK_SZ)))

}

return c.join("")

}

//fReader.readAsBinaryString(dstring)

//str=fReader.result

fReader.readAsArrayBuffer(dstring)

var arrayBufferData=fReader.result

str=Uint8ToString(new Uint8Array(arrayBufferData))

终于完美搞定, 你们有用一定要谢我啊。不容易

按字符切片 发送 就可解决你 的问题


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/6151532.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存