bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

vb.net里面是編碼的簡單介紹

vb.net 如何將編碼GB2312轉成UTF8

Imports System.Text

成都創新互聯公司是一家專注網站建設、網絡營銷策劃、小程序設計、電子商務建設、網絡推廣、移動互聯開發、研究、服務為一體的技術型公司。公司成立十余年以來,已經為上千余家石牌坊各業的企業公司提供互聯網服務。現在,服務的上千余家客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。

Public Function StringAsUtf8Bytes(ByVal strData As String) As Byte()

Dim bytes() As Byte

bytes = Encoding.UTF8.GetBytes(strData)

Return bytes

End Function

說明:strData參數是GB2312字符串,函數返回UTF8字節數組

vb.net怎么把漢字轉換為GB2312編碼,例如“廣東”變成%B9%E3%B6%AB

GB2312是GBK編碼的子集,使用GBK編碼函數即可

'GBK編碼(結果以百分號%進行分隔)

Public Function GBKEncode(ByVal sInput As String) As String

Dim ret_GBKEncode As String = ""

Dim i As Integer

Dim startIndex As Integer = 0

Dim endIndex As Integer

Dim x() As Byte = System.Text.Encoding.Default.GetBytes(sInput) '字符以及字符串在vb2008中都是以unicode編碼存儲的

endIndex = x.Length - 1

For i = startIndex To endIndex

ret_GBKEncode = "%" Hex(x(i))

Next

Return ret_GBKEncode

End Function

'GBK解碼

Public Function GBKDecode(ByVal sInput As String) As String

sInput = sInput.Replace("%", "")

Dim ret_GBKDecode As String = ""

Dim sLen As Integer = sInput.Length

Dim n As Integer = sLen \ 2

Dim sBytes(0 To n - 1) As Byte

'轉化為字節碼

For i As Integer = 1 To n

sBytes(i - 1) = CByte("H" sInput.Substring(2 * i - 2, 2))

Next

'將字節碼轉化為字符串

ret_GBKDecode = System.Text.Encoding.Default.GetString(sBytes)

Return ret_GBKDecode

End Function

vb.net中string 轉 unicode 編碼

Unicode編碼是一個數組,其中每個元素代表一個位碼,還有ASCII和UTF8兩種編碼格式。

Unicode:

Dim bytes() As Byte() = System.Text.Encoding.Unicode.GetBytes("字符串")

ASCII:

Dim bytes() As Byte() = System.Text.Encoding.ASCII.GetBytes("字符串")

UTF8:

Dim bytes() As Byte() = System.Text.Encoding.UTF8.GetBytes("字符串")

VB.NET UNICODE碼 顯示

Public?Class?Form1

Dim?b()?As?Byte

Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click

b?=?System.Text.Encoding.Default.GetBytes(TextBox1.Text)

For?i?=?0?To?UBound(b)

TextBox2.AppendText(i.ToString??"?")

Next

End?Sub

Private?Sub?Button2_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button2.Click

TextBox1.Text?=?System.Text.Encoding.Default.GetString(b)

End?Sub

Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load

TextBox1.Text?=?"Google?free?online?translation?service?instantly?translates?text?and?web?pages。?該翻譯器支持:?中文(簡體),?中文(繁體),?shqip,?日本語,?русский,?langue?fran?aise?..."

End?Sub

End?ClassVB.Net中用String類型表示字符串,內部采用Unicode編碼。當需要在網絡或串口中收發字符串時,就需要在String和Byte數組之間進行轉換,這項功能可以通過System.Text.Encoding類實現。

Private zeroChars()?As Char?=?{ChrW(0)}

Dim descBytes()?As Byte?=?System.Text.Encoding.Unicode.GetBytes(mDescription)

Dim?description As?String?=?System.Text.Encoding.Unicode.GetString(rBuffer,?offset,?length).TrimEnd(zeroChars)

說明:C語言中用'\0'表示字符串結束,而String類型中0是有效字符,顯示時是空白字符,會占用顯示寬度,可以用TrimEnd方法將字符串末尾的零字符去掉。

主要敘說一下StrConv 函數conversion參數最后兩個值的含義和用途,并舉例說明。

1、語法

StrConv(string, conversion, LCID)

StrConv 函數的語法有下面的命名參數:

部分 說明

string 必要參數。要轉換的字符串表達式。

conversion 必要參數。Integer。其值的和決定轉換的類型。

LCID 可選的。如果與系統LocaleID不同,則為LocaleID(系統LocaleID為缺省值。)

設置值

conversion 參數的設置值為:

常數 值 說明

vbUpperCase 1 將字符串文字轉成大寫。

vbLowerCase 2 將字符串文字轉成小寫。

vbProperCase 3 將字符串中每個字的開頭字母轉成大寫。

vbWide* 4* 將字符串中單字節字符轉成雙字節字符。

vbNarrow* 8* 將字符串中雙字節字符轉成單字節字符。

vbKatakana** 16** 將字符串中平假名字符轉成片假名字符。

vbHiragana** 32** 將字符串中片假名字符轉成平假名字符。

vbUnicode 64 根據系統的缺省碼頁將字符串轉成 Unicode。

vbFromUnicode 128 將字符串由 Unicode 轉成系統的缺省碼頁。

*應用到遠東國別。

**僅應用到日本。

說明:前面3個參數比較簡單,后面4個我們用不上,就不說了,主要說說后面兩個。

2、ANSI 格式

語法中說的缺省碼頁就是ANSI模式,英文環境下 的ANSI 格式其實也就是ASCII碼,其它環境就不一樣了,比如中文環境,就是ASCII,一個字節表示一個字符,GB2312,2個字節表示一個漢字,所以中文環境下的ANSI格式就是ASCII碼+GB2312,早期的DOS系統中純文本就是這種格式,這種格式下,通過最高位來判斷是中文字符(最高位是1)還是ASCII字符(最高位是0)。中文環境下保存文本文件時一般都采用ANSI格式,不過也有其他格式,比如UTF-8。

3、Unicode編碼

Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是為了解決傳統的字符編碼方案的局限而產生的,它為每種語言中的每個字符設定了統一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。Unicode用兩個字節表示一個字符,涵蓋了世界上所有字符,和以前的字符集都不兼容,VB內部字符串就是采用Unicode編碼,所以當我們打開一個文本文件讀入數據的時候,其內存中的內容和文本文件的內容是不一樣的,經過了轉換,除非你采用二進制方式讀入。

4、vbUnicode和vbFromUnicode含義

有了上面敘說,這兩個參數的含義就好理解了,就是Unicode編碼和ANSI編碼的互換,例如:

? ? ? textline= StrConv(plaintext,vbUnicode) ?

這兒textline是以字符串變量,plaintext是以字節變量保存著ANSI模式的字符內容,例如,“2”這個字符,一個字節,值是50,16進制是32,“皖”這個漢字,兩個字節,值是205和238,同樣是這兩個字符,作為字符串在內存中都是兩個字節,例如,“2”這個字符在內存中16進制值是0032。當VB打開一個文件讀取文本內容是,實際上自動進行了上述轉換。

? ? ?plaintext?= StrConv(textline,?vbFromUnicode)

這兒進行相反的轉換,就是將Unicode字符串轉換成ANSI模式,轉換結果必須以字節方式保存。

5、vbUnicode和vbFromUnicode用途

由于字符在內存中的內容和文件中的內容不一致,所以必須要用到這種轉換,特別是系統間進行數據交換、數據加密和解密,如果不做轉換可能導致得不到正確的結果。

比如,我們對一個文本文件進行加密,這個文件是ANSI格式存儲的,當從文件內容讀入一行到內存的時候,自動將內容轉換成了Unicode格式,如果這時候對其做加密運算,其結果和文件中字符串加密結果是不一樣的,這樣的結果如果讓別人解密將無法得到正確的結果。如果對讀入內存的內容先做個轉換(textline是讀入內容):

? ? ?plaintext?= StrConv(textline,?vbFromUnicode)

再對plaintext做加密,其結果就一樣了。

舉例(按行做加密和解密運算,算法是AES+Base64):

[vb]?view plain?copy

Status?=?"Encrypting?File"

Open?FileName?For?Input?As?#1??????'?打開輸入文件。

Open?FileName2?For?Output?As?#2?????'?打開輸出文件。

Do?While?Not?EOF(1)

Line?Input?#1,?TextLine

plaintext?=?StrConv(TextLine,?vbFromUnicode)

Status?=?"Encrypting?Data"

m_Rijndael.SetCipherKey?pass,?KeyBits

m_Rijndael.ArrayEncrypt?plaintext,?ciphertext,?0

Status?=?"Converting?Text?to?Base64"

TextLine?=?Base64Encode(ciphertext)

Status?=?""

Print?#2,?TextLine????'?將字符串寫入文件。

Loop

Close

[vb]?view plain?copy

Status?=?"Decrypting?File"

Open?FileName?For?Input?As?#1??????'?打開輸入文件。

Open?FileName2?For?Output?As?#2????'?打開輸出文件。

Do?While?Not?EOF(1)

Line?Input?#1,?TextLine

Status?=?"Converting?Base64?to?Text"

ciphertext?=?Base64Decode(TextLine)

Status?=?"Decrypting?Data"

m_Rijndael.SetCipherKey?pass,?KeyBits

If?m_Rijndael.ArrayDecrypt(plaintext,?ciphertext,?0)??0?Then

Status?=?""

Exit?Sub

End?If

TextLine?=?StrConv(plaintext,?vbUnicode)

For?i?=?0?To?UBound(plaintext)

Debug.Print?plaintext(i)

Next?i

k?=?InStr(1,?TextLine,?Chr(0),?vbBinaryCompare)

If?k??0?Then?TextLine?=?Left(TextLine,?k?-?1)????'截掉加密時補的0

MsgBox?TextLine??"end"

Status?=?""

Print?#2,?TextLine????'?將字符串寫入文件。

Loop

Close

是用VB.NET自帶的 BASE64 編碼。然后用java的Base64能解碼嗎...

可能不行。

關鍵在于Base64 的碼表不同,造成很多專用領域的base64算法。

比如,url中“/”有特殊含義,所依,在瀏覽器里一般都用“-、*”來替換“+、/”兩個符號,造成不同的base64 變種。

如何用VB.net 讀寫Unicode編碼的文本

不要用do until,用for:

Dim arr() As String, i As Integer

arr = Split(r.ReadLine, " ")

For i = LBound(arr) To UBound(arr)

MsgBox(arr(i))

Next

--------------------

還是用readline,如果你要提取兩個非連續空格之間的字符串,可以用

Dim arr() As String

arr = Split(r.ReadLine, " ")

arr()數組里就存了你要的單詞。

快要下班了,明后天不上班,如果16:30之前還搞不定就要下個星期1了。

----------------------------------

哈,是我的失誤沒想到還有可能有半角的日文。

用utf-8就OK了,代碼如下:

(文本文件存的時候不能存成ansi,要存成utf-8,或是Unicode)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim r As System.IO.StreamReader

r = New System.IO.StreamReader("c:\a.txt", System.Text.Encoding.GetEncoding("utf-8"))

Do While Not r.EndOfStream

MsgBox(r.ReadLine)

Loop

End Sub

當前文章:vb.net里面是編碼的簡單介紹
鏈接分享:http://vcdvsql.cn/article24/hehgce.html

成都網站建設公司_創新互聯,為您提供建站公司全網營銷推廣微信公眾號手機網站建設App開發外貿網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

微信小程序開發