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

594 篇文章 5 订阅
156 篇文章 0 订阅

简介

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编码。

开发环境

安装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组件应该有了初步的了解。

为了帮助到大家能够更有效的学习OpenHarmony 开发的内容,下面特别准备了一些相关的参考学习资料:

OpenHarmony 开发环境搭建:https://qr18.cn/CgxrRy

《OpenHarmony源码解析》:https://qr18.cn/CgxrRy

  • 搭建开发环境
  • Windows 开发环境的搭建
  • Ubuntu 开发环境搭建
  • Linux 与 Windows 之间的文件共享
  • ……

系统架构分析:https://qr18.cn/CgxrRy

  • 构建子系统
  • 启动流程
  • 子系统
  • 分布式任务调度子系统
  • 分布式通信子系统
  • 驱动子系统
  • ……

OpenHarmony 设备开发学习手册:https://qr18.cn/CgxrRy

在这里插入图片描述

OpenHarmony面试题(内含参考答案):https://qr18.cn/CgxrRy

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值