# jchardet **Repository Path**: zhyx147/jchardet ## Basic Information - **Project Name**: jchardet - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 19 - **Created**: 2023-09-09 - **Last Updated**: 2023-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jchardet ## 简介 jchardet是一个检测文本文件(字节流)编码方式的ArkTs实现 ## 效果展示 ![动画](show/show.gif) ## 下载安装 ```shell ohpm install @ohos/jchardet --save ``` OpenHarmony ohpm环境配置等更多内容,请参考 如何安装 OpenHarmony ohpm 包 https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_har_usage.md ## 使用说明 1、文本编码检测 ``` 1、初始化编码检测器,输入语言种类,默认为0=>All //1 => Japanese //2 => Chinese //3 => Simplified Chinese //4 => Traditional Chinese //5 => Korean //6 => Dont know (default) let det: nsDetector = new nsDetector(lang); 2、在检测器的初始化函数中定义回调函数,接收编码检测结果 det.Init(new class implements nsICharsetDetectionObserver { Notify(charset: string): void { console.log("CHARSET = " + charset); } }) 3、 向编码检测器提供数据,首选判断是否Ascii编码,如果是Ascii编码,则程序结束。 let isAscii:boolean = det.isAscii(byteData); 4、 如果不是继续检测编码,如果检测到某一种编码,则进入初始化时定义的回调,程序结束。 let done:boolean = det.DoIt(byteData, false); 5、 如果检测到多种编码,则获取编码列表,程序结束。 let prob: Array = det.getProbableCharsets(); ``` ## 接口说明 `let det: nsDetector = new nsDetector(lang);` 1. 初始化 `det.Init(aObserver: nsICharsetDetectionObserver)` 2. 完成 `det.Done()` 3. 报告 `det.Report()` 4. 是否Ascii `det.isAscii()` ## 约束与限制 在下述版本验证通过: - DevEco Studio 版本:4.0 Beta2(4.0.3.411),OpenHarmony SDK:API10(4.0.10.2) ## 目录结构 ```` |---- jchardet | |---- entry # 示例代码文件夹 | |---- jchardet # jchardet库 | |---- index.ets # 对外接口 |---- components # 组件代码目录 |----chardet # 核心类目录 |---- GB2312Statistics # GB2312统计器 |---- nsGB2312Verifier # GB2312验证器 |---- nsUTF8Verifier # UTF8验证器 | |---- README.md # 安装使用方法 ```` ## 贡献代码 使用过程中发现任何问题都可以提 [Issue](https://gitee.com/openharmony-sig/jchardet/issues) 给我们,当然,我们也非常欢迎你给我们发 [PR](https://gitee.com/openharmony-sig/jchardet/pulls) 。 ## 开源协议 本项目基于 [MOZILLA PUBLIC LICENSE 1.1](https://gitee.com/openharmony-sig/jchardet/blob/master/LICENSE) ,请自由地享受和参与开源。