如何解决文件的中文乱码问题

如何解决文件的中文乱码问题

HarmonyOS
2024-01-21 14:15:46
浏览
收藏 0
回答 3
待解决
回答 3
按赞同
/
按时间
鱼弦CTO
1
分享
微博
QQ
微信
回复
2024-07-10 11:14:40
lhlrj

读取文件内容的buffer数据后,通过TextDecoder对文件内容进行解码。

import { util } from "@kit.ArkTS" 
import { fileIo } from '@kit.CoreFileKit'; 
 
let filePath = getContext(this).filesDir + "/test0.txt"; 
let stream = fileIo.createStreamSync(filePath, "r+"); 
let buffer = new ArrayBuffer(4096); 
let readOut = stream.readSync(buffer); 
let textDecoder = util.TextDecoder.create('utf-8', { ignoreBOM: true }); 
let readString = textDecoder.decodeWithStream(new Uint8Array(buffer), { stream: false }); 
console.log("读取的文件内容:" + readString);

已于2024-1-31 14:02:04修改
分享
微博
QQ
微信
回复
2024-01-22 16:59:35
hz3000

读取文件内容的buffer数据后,通过TextDecoder对文件内容进行解码。

import { util } from '@kit.ArkTS';
import { fileIo } from '@kit.CoreFileKit';

// 创建一个文件写入中文字符

let filePath = getContext(this).filesDir + "/test0.txt";
let file = fileIo.openSync(filePath, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE);

// 写入一段内容至文件

let writeLen = fileIo.writeSync(file.fd, "你好,世界");
fileIo.closeSync(file);
console.info(`GarbledCnCharacters The length of str is: ${writeLen}`);
let stream = fileIo.createStreamSync(filePath, "r+");
let buffer = new ArrayBuffer(4096);
stream.readSync(buffer);

// 设置编码格式为“utf-8”

let textDecoder = util.TextDecoder.create('utf-8', { ignoreBOM: true });

// 解码输后获取对应文本

let readString = textDecoder.decodeWithStream(new Uint8Array(buffer), { stream: false });
console.info(`GarbledCnCharacters read content is:${readString}`);
分享
微博
QQ
微信
回复
2024-07-08 15:05:00
相关问题
this传递问题,该如何解决
936浏览 • 1回复 待解决
如何解决预览流黑屏问题
414浏览 • 1回复 待解决
如何解决底层库无法调试问题
482浏览 • 1回复 待解决
HarmonyOS如何解决数据存储问题
7836浏览 • 3回复 已解决
如何解决webview loaddata白屏问题
467浏览 • 1回复 待解决
如何解决webview离线加载白屏问题
509浏览 • 1回复 待解决
DevEco Studio IDE 代码 中文汉字乱码
11213浏览 • 2回复 待解决
如何解决module相互依赖问题
564浏览 • 1回复 待解决
如何解决hdc无法连接真机问题
688浏览 • 1回复 待解决
如何解决MD5加密中遇到问题
252浏览 • 1回复 待解决
AI码生成能力中文字符乱码
8390浏览 • 1回复 待解决
http请求报错2300006如何解决
1029浏览 • 1回复 待解决