# jchardet **Repository Path**: openharmony-sig/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**: 1 - **Forks**: 19 - **Created**: 2022-04-16 - **Last Updated**: 2025-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jchardet ## 简介 jchardet是一个检测文本文件(字节流)编码方式的ArkTs实现 ## 效果展示 ![动画](show/show.gif) ## 下载安装 ```shell ohpm install @ohos/jchardet ``` 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、在检测器的初始化函数中定义回调函数,接收编码检测结果 class CharsetDetectionObserver implements nsICharsetDetectionObserver { Notify(charset: string | undefined): void { console.log("CHARSET = " + charset); } }; let charsetDetectionObserver: nsICharsetDetectionObserver = new CharsetDetectionObserver(); det.Init(charsetDetectionObserver); 3、 判断数据是否是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.1 Canary(4.1.3.317) - OpenHarmony SDK:API11 (4.1.0.36) ## 目录结构 ```` |---- jchardet | |---- entry # 示例代码文件夹 | |---- library # 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) ,请自由地享受和参与开源。