首页 > 其他分享 >Jchardet——支持检测并输出文件编码方式的组件

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

时间:2022-10-12 12:38:26浏览次数:86  
标签:OpenHarmony 编码 Jchardet det 检测 组件 编码方式

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

简介​

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——支持检测并输出文件编码方式的组件_git


开发环境​

安装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/OpenHarmony_npm_usage.md​

1. 下载jchardet组件


npm install @ohos/jchardet –-save


2. 在page页面导入。

import {nsICharsetDetectionObserver,
nsDetector,nsPSMDetector} from '@ohos/jchardet/


3. 初始化编码检测器。

//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);


4. 在检测器的初始化函数中定义回调函数,接受编码检测结果。

det.Init(new class implements nsICharsetDetectionObserver {
Notify(charset: string): void {
console.log("CHARSET = " + charset);
}
})


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

let byteData = new Int8Array(buf); //buf为文件的ArrayBuffer
let 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)进行研究和使用。同时也欢迎更多开发者与我们共享开发成果,分享技术解读与经验心得。


标签:OpenHarmony,编码,Jchardet,det,检测,组件,编码方式
From: https://blog.51cto.com/OpenHarmony/5749371

相关文章

  • 关于ATL组件网页调用
    一、控件只构造不初始化原因:说明网页已经加载了组件,但自身实现可能不完整,使用下面的方案3解决了问题 解决方案1:BEGIN_PROP_MAP(CYQFrame) PROP_DATA_ENTRY("_cx",......
  • uniapp- map组件监听地图缩放
    需求:根据地图缩放比例大小判断展示maker气泡(地图缩小时只显示maker,放大到一定数值时再显示气泡)   官方提到的这个回调只能监听拖拽,并不能监听缩放,这样做的效果就是......
  • 中等-817. 链表组件
    解题思路:对链表循环执行结果:通过执行用时:232ms,在所有 JavaScript 提交中击败了36.36%的用户内存消耗:44.5MB,在所有 JavaScript 提交中击败了93.18%的用户通......
  • Jchardet——支持检测并输出文件编码方式的组件
     简介Jchardet是OpenAtomOpenHarmony(以下简称“OpenHarmony”)系统的一款检测文本编码的组件。当上传一个文件时,组件可以检测并输出该文件中文本使用的编码方式。支......
  • 即用型UI组件库Kendo UI R3 2022,让应用主题开发更容易
    KendoUI是带有 jQuery、Angular、React和Vue库的JavaScriptUI组件的最终集合,无论选择哪种JavaScript框架,都可以快速构建高性能响应式Web应用程序。通过可自定义的UI组件......
  • 817. 链表组件
    817.链表组件给定链表头结点 head,该链表上的每个结点都有一个唯一的整型值。同时给定列表 nums,该列表是上述链表中整型值的一个子集。返回列表 nums 中组件的......
  • Vue里面父组件嵌套子组件的生命周期
     最常见的4种状态1.Creation2.Mounting3.Updating4.Unmouting 通常create用来放API的如果是在Mount是挂载后操作DOM的   我们搞清楚他的生命周期顺序,父......
  • 好用的组件收藏
    播放器播放条斗鱼、Youtobe等https://web-streaming.github.io/ppbar/使用使用ppbar,需要导入ProgressBar类和ppbar的样式。importProgressBarfrom'ppbar';......
  • 公共组件的显示与隐藏
     Footer组件显示与隐藏显示或者隐藏组件:v-if|v-showFooter组件:在Home,Search显示Footer组件Footer组件:在登陆,注册时候隐藏的 1.我们可以根据组件身上的$route......
  • 使用element ui的el-upload组件上传图片,记录一下
    使用elementui的el-upload组件上传图片效果预览下面是实现效果,接口方面是把有两个接口,一个接口上传图片,传参是图片和路径,返回值是路径。另一个接口是上传表单内容(用户,......