js 是否有专门进行编码检测(charset|encoding detection)的轮子 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
abcbuzhiming
V2EX    Javascript

js 是否有专门进行编码检测(charset|encoding detection)的轮子

  •  
  •   abcbuzhiming 2017-04-26 14:41:15 +08:00 3286 次点击
    这是一个创建于 3168 天前的主题,其中的信息可能已经有所发展或是发生改变。
    纯 Javascript ,不是 nodejs

    最近一直在研究如何让浏览器直接读取用户提供的文件,就和原生应用一样,发现有个问题很难解决,用户提供的文件使用的编码集你是不知道的,也不是所有文件都有 Bom 头, GBK 和 UTF-8 No bom 头是无法从头部分辨的。导致你读取的时候很容易乱码,你不能默认就是认为 txt 文件一定是 GBK 也不能认为 csv 就一定是 UTF8 ,其它语言都有能进行编码检测的能力, js 有没有相关的轮子实现?
    7 条回复    2017-04-26 16:18:01 +08:00
    denghongcai
        1
    denghongcai  
       2017-04-26 15:05:09 +08:00
    denghongcai
        2
    denghongcai  
       2017-04-26 15:08:06 +08:00
    楼上那个是 decode 的,探测可以看看 https://github.com/aadsm/jschardet
    abcbuzhiming
        3
    abcbuzhiming  
    OP
       2017-04-26 15:54:09 +08:00
    @denghongcai 66666 ,我就说应该有轮子,但是始终找不到
    AdamChrist
        4
    AdamChrist  
       2017-04-26 16:04:33 +08:00
    iconv-lite 需要 node 环境才能使用,里面用了 buffer 和 stream
    orzfly
        5
    orzfly  
       2017-04-26 16:07:30 +08:00
    @AdamChrist #4 https://www.npmjs.com/package/iconv-lite 人家有提到脱离 Node 的方法……
    In-browser usage via Browserify (~180k gzip compressed with Buffer shim icluded).
    binux
        6
    binux  
       2017-04-26 16:12:32 +08:00
    大部分 nodejs 的 lib 都能 Browserify ,大部分库都不单独发布 Browserify 的版本了
    AdamChrist
        7
    AdamChrist  
       2017-04-26 16:18:01 +08:00
    @orzfly 我之前在 react-native 中使用不行..忘记有 Browserify 的方法了..不过刚才看了一下..最新版也支持了 react-native 了..
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2678 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 09:15 PVG 17:15 LAX 01:15 JFK 04:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86