在LabVIEW中读取unicode文本

在默认情况下,LabVIEW的文本文件只支持ASCI的编码存取。对中文而言则取决于系统默认,如果是简体中文则为GB2312编码,繁体中文则为Big5编码。

但是某些情况下需要使用到Unicode编码的文件,如果此时直接使用LabVIEW的文本读取方式去读取,则会导致乱码,或者读取出来的只能肉眼判断,而无法用于文本截取或正则读取。

LabVIEW中没有提供各种常用文字编码之间相互转换的函数,此时可以借助外部的dll解决该问题。本例程中借用了kernel32.dll:WideCharToMultiByte来实现Unicode文本的读取。

WideCharToMultiByte
函数功能:该函数映射一个unicode字符串到一个多字节字符串。 (—Unicode转ANSI(GB2312))

int WideCharToMultiByte(
_In_       UINT CodePage,
_In_       DWORD dwFlags,
_In_       LPCWSTR lpWideCharStr,
_In_       int cchWideChar,
_Out_opt_  LPSTR lpMultiByteStr,
_In_       int cbMultiByte,
_In_opt_   LPCSTR lpDefaultChar,
_Out_opt_  LPBOOL lpUsedDefaultChar
);

在LabVIEW中,可如下构建程序:
在这里插入图片描述
在此,编辑了以下测试文本:
在这里插入图片描述
运行,可看到直观对比结果:
在这里插入图片描述
由上图可见,利用LabVIEW自带的读取文本控件读出来的都乱码了,见上图左边txtIn.经过本程序处理后,可恢复得到我们想要的结果,见上图右边Result string.

本程序源码地址:
1、GitHub:https://github.com/JaySur/Read-unicode-text-in-LabVIEW
2、CSDN花积分下载:点击直达下载页面

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值