在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花積分下載:點擊直達下載頁面

發佈了26 篇原創文章 · 獲贊 16 · 訪問量 8568
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章