在VB中如何把UTF 8編碼轉換為中文

2022-01-07 11:24:41 字數 3970 閱讀 8005

1樓:

無須先轉換成utf-8再轉成gb2312

更簡單的:

'源串dim strtext as string ="要發往微控制器的字串"

'要輸出的位元組陣列

dim arrbytout() as byte'轉換

arrbytout = system.text.encoding.getencoding("gb2312").getbytes(strtext)

2樓:微軟專家張海

先把utf-8編碼轉成byte陣列,然後

3樓:匿名使用者

可以試下自己寫轉換的函式,給你點參考資料

**新帆新聞組:

第一步:用二進位制法讀入文字資料,賦值給位元組型陣列,並判斷前3個位元組是否utf-8標記,如果是,才進行以下的處理第二步:逐個位元組判斷是否漢字編碼,如果是,就再提取後兩個陣列元素,共三個陣列元素來加以處理

第三步:將這三個資料都轉換成16進製制資料

第四步:將三個16進製制資料都轉換成二進位制資料第五步:從第乙個二進位制資料中去掉前4位,從第二、三個二進位制資料

中分別去掉前2位,並將這三個處理後的二進位制資料依次連線,成為乙個16位的字串

第六步:從這個二進位制串中分別提取前8位和後8位轉換成兩個10進製資料,這兩個資料就是漢字的unicode碼了,將它們賦值給乙個字元型變數即可

4樓:tn瓶邪

具體步驟為:

public function getstringfromutf8(byref data() as byte) as string

dim result as string, tmp(1 to 2) as byte, char as string

for i = lbound(data) to ubound(data)

if data(i) < &h80 then

result = result & asc(data(i))

else

if ubound(data) - i < 2 then

exit for

else

char = buffer

result = result & char

i = i + 2

end if

end if

next

getstringfromutf8 = result

end function

5樓:荔菲彭澤

2l是.net的**

6樓:匿名使用者

不知道。

但我知道編碼沒有,中文,英文,之分??

應該是uft——8轉成常用的gb2313.

vb中如何將字串轉換為utf-8編碼?

7樓:

private declare function multibytetowidechar lib "kernel32" (byval codepage as long, byval dwflags as long, byval lpmultibytestr as long, byval cchmultibyte as long, byval lpwidecharstr as long, byval cchwidechar as long) as long

private declare function widechartomultibyte lib "kernel32" (byval codepage as long, byval dwflags as long, byval lpwidecharstr as long, byval cchwidechar as long, byval lpmultibytestr as long, byval cchmultibyte as long, byval lpdefaultchar as long, byval lpuseddefaultchar as long) as long

private const cp_acp = 0        ' default to ansi code page

private const cp_utf8 = 65001   ' default to utf-8 code page

private sub command1_click()

dim s as string, a() as byte

s = text1.text

a = encodetobytes(s)

for i = 0 to ubound(a)

text2.text = text2.text & hex(a(i)) & " "

next

end sub

public function encodetobytes(byval sdata as string) as byte()

dim aretn() as byte, nsize as long

nsize = widechartomultibyte(cp_utf8, 0, strptr(sdata), -1, 0, 0, 0, 0)

redim aretn(0 to nsize - 1) as byte

widechartomultibyte cp_utf8, 0, strptr(sdata), -1, varptr(aretn(0)), nsize, 0, 0

encodetobytes = aretn

end function

8樓:匿名使用者

vb裡漢字就是乙個字元

msgbox (len("漢字"))這句顯示為2

如何將utf-8編碼的csv檔案轉換為gbk編碼

vb6中如何把乙個漢字或英文轉換成utf8的編碼??? 10

9樓:匿名使用者

問題是:

**中有下面的字元,實際上第一行代表三個漢字,下一行是四個漢字,現在的問題是我想把手頭的漢字轉成它們的樣式,該如何操作呢?

%e8%b0%ad%e5%b0%8f%e8%8b%97

%e6%ac%a2%e4%b9%90%e5%ae%b6%e7%a6%8f

三個%開頭的內容表示乙個漢字,應該是utf8格式的。%的分隔好說,所以問題也就是我們常用的gb碼如何到utf8的問題,我進一步查資料表明,如果找到該漢字的unicode碼就更方便進行轉換了。

gb/gbk------>unicode------->utf8???

5樓方法很好,謝謝你啊!暫不結貼,因為難道只能放到建立視窗完畢中用嗎?我放到其它地方(開了多執行緒中)卻不成!!!輸出為空「」!為什麼?

我又看了一下,在執行那兒就不行,輸出的錯誤資訊沒有什麼價值。而在完畢事件或其它事件中執行是成功的!如果非要這樣它又有多少用處呢?這個好東西該怎麼樣用呢?!

上面的問題,有支援庫可以直接解決它,呼叫一下就可以了!

.版本 2

.支援庫 iconv

轉換編碼 = 編碼轉換 (到位元組集 (當前帳戶), #編碼_gb2312, #編碼_utf_8, )

輸出除錯文字 (到文字 (轉換編碼))

.計次迴圈首 (取位元組集長度 (轉換編碼), 計次)

位元組 = 到位元組 (取位元組集資料 (轉換編碼, 3, 計次))

' 輸出除錯文字 (取位元組集資料 (轉換編碼, 3, 計次))

.如果 (位元組 > 127)

結果 = 結果 + 「%」 + 取十六進製制文字 (到數值 (位元組))

.否則結果 = 結果 + 字元 (位元組)

.如果結束

.計次迴圈尾 ()

php連mysql用utf 8編碼亂碼怎麼辦

如果設定了set names utf8還是亂碼的話,你需要看看資料庫的編碼格式了,亂碼產生的原因,是因為存放時的編碼和取出資料展示的編碼不一致,導致的不能正常顯示,你先檢視資料庫的編碼合適,存放資料庫開始檢查 有如下四個步驟,都需要檢查下 借助 notepad 把 sql 檔案的編碼格式改成 utf...

如何把VB中窗體的text值輸入後顯示在另窗體的text上?煩勞煩勞呀

輸入在form1中的text1中,顯示在form2中的text1中,關鍵 在form2窗體中 text1.text form1.text1.text 畫兩個textbox控制項,form1 畫text1 用於輸入 form2畫text2,用於顯示 private sub text1 change f...

vb中如何進行字串操作,VB中,怎樣在乙個已知的字串中插入乙個字元?

插入乙個字元 dim a as string,b as stringa iyou b love a left a,1 b right a,3 msgbox a 刪除乙個字元 dim a as string a i love you a left a,4 right a,3 msgbox a midl...