Jchardet——支持检测并输出文件编码方式的组件

网络工
• 阅读 703

简介

Jchardet是OpenAtom OpenHarmony(以下简称“OpenHarmony”)系统的一款检测文本编码的组件。当上传一个文件时,组件可以检测并输出该文件中文本使用的编码方式。支持的编码格式有:ASCII编码、UTF-8编码、UTF-16LE编码、Shift-JIS编码、ISO-2022-JP编码、ISO-2022-CN编码、ISO-2022-KR编码、Big5编码、UTF-16BE编码、x-euc-tw编码、EUC-KR编码、ECU-JP编码、GB18030编码、HZ-GB-2312编码、Windows-1252编码、GB2312编码。

Jchardet——支持检测并输出文件编码方式的组件

开发环境

安装IDE:支持DevEco Studio 3.0 Release(Build Version 3.0.0.993)版本。
安装SDK:OpenHarmony API version 8及以上版本。

使用方法

需要先配置OpenHarmony npm仓,请参考安装教程https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmon...

  1. 下载jchardet组件

npm install @ohos/jchardet –-save
  1. 在page页面导入。
import {nsICharsetDetectionObserver,
nsDetector,nsPSMDetector} from '@ohos/jchardet/
  1. 初始化编码检测器。
//lang为输入的语言种类
    //0 => All
    //1 => Japanese
    //2 => Chinese
    //3 => Simplified Chinese
    //4 => Traditional Chinese
    //5 => Korean
    //6 => Dont know (default)
let det: nsDetector = new nsDetector(lang); 
  1. 在检测器的初始化函数中定义回调函数,接受编码检测结果。
det.Init(new class implements nsICharsetDetectionObserver {
          Notify(charset: string): void {
          console.log("CHARSET = " + charset);
          }
 })

4.1 向编码检测器提供数据,首选判断是否Ascii编码,如果是Ascii编码,则程序结束。

let byteData = new Int8Array(buf); //buf为文件的ArrayBufferlet isAscii:boolean = det.isAscii(byteData);

4.2 如果检测到某一种编码,则进去初始化时定义的回调,程序结束。

let done:boolean = det.DoIt(byteData, false);

4.3 如果检测到多种编码,则获取编码列表,程序结束。

let prob: Array<string> = det.getProbableCharsets();

结语

通过本篇文章介绍,您对OpenHarmony Jchardet组件应该有了初步的了解。我们所有的源码和指导文档都已经开源,如果您对本篇文章内容以及所实现的Demo感兴趣,可以根据本篇文章介绍自行下载OpenHarmony Jchardet源码(https://gitee.com/openharmony-sig/jchardet)进行研究和使用。同时也欢迎更多开发者与我们共享开发成果,分享技术解读与经验心得。

Jchardet——支持检测并输出文件编码方式的组件

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
java判断文本文件编码格式
上篇文章需要读取当前java或者配置文件的编码格式,这里主要支持UTF8、GBK、UTF16、Unicode等/判断文件的编码格式@paramfileName:file@return文件编码格式@throwsException/pu
Wesley13 Wesley13
4年前
java 检测文本、文件编码
/默认GB18030/publicstaticfinalStringdetectCharset(bytebyteArray){//建立InputStreamByteArrayInputStreambaisnewByteArray
Wesley13 Wesley13
4年前
java读取中文文本文件乱码问题
今天遇到的问题是这样:用java读取一个中文文本文件,但读取到的却是乱码,之前一直没有问题,查清楚后,原来是因为今天是用的windows的记事本来编辑的文件,因编码方式是的不同而导致了乱码,解决方法就是设置编码方式为“UTF8”,设置方法如下:FilefilenewFile("文件路径");Readerreader
Stella981 Stella981
4年前
Jenkins maven 构建乱码,修改file.encoding系统变量编码为UTF
一切都是windows的控制台默认编码GBK问题情景:使用jenkins构建,console输出的中文乱码。代码编码格式是utf8,因为Jenkins会默认读取当前系统的编码格式,导致构建日志乱码和selenium自动化测试输入的中文乱码。控制台输出乱码!(https://oscimg.oschina.net/oscnet/4
Stella981 Stella981
4年前
Http Header的Transfer
TransferEncoding,是一个HTTP头部字段,字面意思是「传输编码」。实际上,HTTP协议中还有另外一个头部与编码有关:ContentEncoding(内容编码)。ContentEncoding通常用于对实体内容进行压缩编码,目的是优化传输,例如用gzip压缩文本文件,能大幅减小体积。内容编码通常是选择性的,例如jpg/p
Stella981 Stella981
4年前
Eclipse为不同的文件类型设置编码格式和编辑器
不知道大家遇到项目中编码格式不统一的情况没有,哈哈,我们就是,比如java的编码格式是GBK,html等编码是UTF8,这样会导致很多问题,比如提交了一个UTF8的java文件到SVN,会导致后端编译错误。如果是项目建立的时候,大家一定要注意保持编码格式的统一呀,最好用UTF8。我记录一下,怎么在Eclipse中为不同文本设置不同编码格式和编辑器。
Wesley13 Wesley13
4年前
Java 使用 ResourceBundle 类读取 properties 文件中文乱码的解决方案
Java使用java.util.ResourceBundle类的方式来读取properties文件时不支持中文,要想支持中文必须将文件设置为ISO88591编码格式,这对于开发工具默认为UTF8来说很不友好,而且就算用ISO88591编码,当其他人将这个项目导入开发工具时很容易出现这个properties文件中的内容有乱码(前提是该文件中包含中文)
Wesley13 Wesley13
4年前
CSS 样式书写规范
编码设置采用 UTF8 编码,在CSS代码头部使用:@charset"utf8";注意,必须要定义在CSS文件所有字符的前面(包括编码注释),@charset 才会生效。例如,下面的例子都会使得 @charset 失效:/字符编码/@charset"utf8";
Wesley13 Wesley13
4年前
JAVA判断文件编码类型
java读取文件,处理过程中,可能因为文件的编码问题导致了中文乱码。有时需要将UTF8的改为ANSI的编码。以下代码就可以判断文件是什么编码方式。 主要jar包:cpdetector.jar  下载地址http://cpdetector.sourceforge.net/ 同时还需jchardet1.0.jar这个包,否则detec
Stella981 Stella981
4年前
PHP检测当前字符编码并转码
一、检测当前字符串编码并将编码改为utf81获取当前字符串的编码$encodemb\_detect\_encoding($str,array("ASCII",'UTF8',"GB2312","GBK",'BIG5')); 2将字符编码改为utf8$str\_encodemb\_convert\_encoding($st
Stella981 Stella981
4年前
Beetl开发完成,性能测试还不错,有图
!(http://static.oschina.net/uploads/space/2014/0326/115744_k2iX_567839.jpg)Beetl2\_byte:打开byte直接输出支持,这减少了静态文本编码耗费时间,所以性能最快Directoutsystem:硬编码输出,相当于servlet直接写输出,或者类