原來(lái)還有這么個(gè)功能,那有沒(méi)有轉(zhuǎn)換為拼音的方法?
成都創(chuàng)新互聯(lián)是專業(yè)的科爾沁左翼網(wǎng)站建設(shè)公司,科爾沁左翼接單;提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行科爾沁左翼網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
我比你運(yùn)氣好,兩個(gè)都有效:
Public?Class?Form1
Private?Declare?Function?LCMapString?Lib?"kernel32"?Alias?"LCMapStringA"?(ByVal?Locale?As?Integer,?ByVal?dwMapFlags?As?Integer,?ByVal?lpSrcStr?As?String,?ByVal?cchSrc?As?Integer,?ByVal?lpDestStr?As?String,?ByVal?cchDest?As?Integer)?As?Integer
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
Dim?cString?As?String?=?"中華人民共和國(guó)"
cString?=?(StrConv(cString,?VbStrConv.TraditionalChinese))
MsgBox(cString)
cString?=?(StrConv(cString,?VbStrConv.SimplifiedChinese))
MsgBox(cString)
Dim?rString?As?String?=?Space(14)
LCMapString(H804,?H4000000,?cString,?14,?rString,?14)
MsgBox(rString)
cString?=?rString
LCMapString(H804,?H2000000,?cString,?14,?rString,?14)
MsgBox(rString)
End?Sub
End?Class
StrConv參數(shù)不對(duì),api 函數(shù)Long型要改為Integer類型。
可以利用font 設(shè)置。設(shè)置方法如下:
TextBox1.Font = New System.Drawing.Font("宋體", 10)
也可以通過(guò)字體對(duì)話框來(lái)實(shí)現(xiàn) 如:
Private Sub myButton_Click(sender As Object, e As EventArgs)
Dim myFontDialog As FontDialog
myFontDialog = New FontDialog()
If myFontDialog.ShowDialog() = DialogResult.OK Then
' Set the control's font.
myDateTimePicker.Font = myFontDialog.Font
End If
End Sub
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。?該翻譯器支持:?中文(簡(jiǎn)體),?中文(繁體),?shqip,?日本語(yǔ),?русский,?langue?fran?aise?..."
End?Sub
End?ClassVB.Net中用String類型表示字符串,內(nèi)部采用Unicode編碼。當(dāng)需要在網(wǎng)絡(luò)或串口中收發(fā)字符串時(shí),就需要在String和Byte數(shù)組之間進(jìn)行轉(zhuǎn)換,這項(xiàng)功能可以通過(guò)System.Text.Encoding類實(shí)現(xiàn)。
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)
說(shuō)明:C語(yǔ)言中用'\0'表示字符串結(jié)束,而String類型中0是有效字符,顯示時(shí)是空白字符,會(huì)占用顯示寬度,可以用TrimEnd方法將字符串末尾的零字符去掉。
主要敘說(shuō)一下StrConv 函數(shù)conversion參數(shù)最后兩個(gè)值的含義和用途,并舉例說(shuō)明。
1、語(yǔ)法
StrConv(string, conversion, LCID)
StrConv 函數(shù)的語(yǔ)法有下面的命名參數(shù):
部分 說(shuō)明
string 必要參數(shù)。要轉(zhuǎn)換的字符串表達(dá)式。
conversion 必要參數(shù)。Integer。其值的和決定轉(zhuǎn)換的類型。
LCID 可選的。如果與系統(tǒng)LocaleID不同,則為L(zhǎng)ocaleID(系統(tǒng)LocaleID為缺省值。)
設(shè)置值
conversion 參數(shù)的設(shè)置值為:
常數(shù) 值 說(shuō)明
vbUpperCase 1 將字符串文字轉(zhuǎn)成大寫。
vbLowerCase 2 將字符串文字轉(zhuǎn)成小寫。
vbProperCase 3 將字符串中每個(gè)字的開(kāi)頭字母轉(zhuǎn)成大寫。
vbWide* 4* 將字符串中單字節(jié)字符轉(zhuǎn)成雙字節(jié)字符。
vbNarrow* 8* 將字符串中雙字節(jié)字符轉(zhuǎn)成單字節(jié)字符。
vbKatakana** 16** 將字符串中平假名字符轉(zhuǎn)成片假名字符。
vbHiragana** 32** 將字符串中片假名字符轉(zhuǎn)成平假名字符。
vbUnicode 64 根據(jù)系統(tǒng)的缺省碼頁(yè)將字符串轉(zhuǎn)成 Unicode。
vbFromUnicode 128 將字符串由 Unicode 轉(zhuǎn)成系統(tǒng)的缺省碼頁(yè)。
*應(yīng)用到遠(yuǎn)東國(guó)別。
**僅應(yīng)用到日本。
說(shuō)明:前面3個(gè)參數(shù)比較簡(jiǎn)單,后面4個(gè)我們用不上,就不說(shuō)了,主要說(shuō)說(shuō)后面兩個(gè)。
2、ANSI 格式
語(yǔ)法中說(shuō)的缺省碼頁(yè)就是ANSI模式,英文環(huán)境下 的ANSI 格式其實(shí)也就是ASCII碼,其它環(huán)境就不一樣了,比如中文環(huán)境,就是ASCII,一個(gè)字節(jié)表示一個(gè)字符,GB2312,2個(gè)字節(jié)表示一個(gè)漢字,所以中文環(huán)境下的ANSI格式就是ASCII碼+GB2312,早期的DOS系統(tǒng)中純文本就是這種格式,這種格式下,通過(guò)最高位來(lái)判斷是中文字符(最高位是1)還是ASCII字符(最高位是0)。中文環(huán)境下保存文本文件時(shí)一般都采用ANSI格式,不過(guò)也有其他格式,比如UTF-8。
3、Unicode編碼
Unicode(統(tǒng)一碼、萬(wàn)國(guó)碼、單一碼)是一種在計(jì)算機(jī)上使用的字符編碼。Unicode 是為了解決傳統(tǒng)的字符編碼方案的局限而產(chǎn)生的,它為每種語(yǔ)言中的每個(gè)字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼,以滿足跨語(yǔ)言、跨平臺(tái)進(jìn)行文本轉(zhuǎn)換、處理的要求。Unicode用兩個(gè)字節(jié)表示一個(gè)字符,涵蓋了世界上所有字符,和以前的字符集都不兼容,VB內(nèi)部字符串就是采用Unicode編碼,所以當(dāng)我們打開(kāi)一個(gè)文本文件讀入數(shù)據(jù)的時(shí)候,其內(nèi)存中的內(nèi)容和文本文件的內(nèi)容是不一樣的,經(jīng)過(guò)了轉(zhuǎn)換,除非你采用二進(jìn)制方式讀入。
4、vbUnicode和vbFromUnicode含義
有了上面敘說(shuō),這兩個(gè)參數(shù)的含義就好理解了,就是Unicode編碼和ANSI編碼的互換,例如:
? ? ? textline= StrConv(plaintext,vbUnicode) ?
這兒textline是以字符串變量,plaintext是以字節(jié)變量保存著ANSI模式的字符內(nèi)容,例如,“2”這個(gè)字符,一個(gè)字節(jié),值是50,16進(jìn)制是32,“皖”這個(gè)漢字,兩個(gè)字節(jié),值是205和238,同樣是這兩個(gè)字符,作為字符串在內(nèi)存中都是兩個(gè)字節(jié),例如,“2”這個(gè)字符在內(nèi)存中16進(jìn)制值是0032。當(dāng)VB打開(kāi)一個(gè)文件讀取文本內(nèi)容是,實(shí)際上自動(dòng)進(jìn)行了上述轉(zhuǎn)換。
? ? ?plaintext?= StrConv(textline,?vbFromUnicode)
這兒進(jìn)行相反的轉(zhuǎn)換,就是將Unicode字符串轉(zhuǎn)換成ANSI模式,轉(zhuǎn)換結(jié)果必須以字節(jié)方式保存。
5、vbUnicode和vbFromUnicode用途
由于字符在內(nèi)存中的內(nèi)容和文件中的內(nèi)容不一致,所以必須要用到這種轉(zhuǎn)換,特別是系統(tǒng)間進(jìn)行數(shù)據(jù)交換、數(shù)據(jù)加密和解密,如果不做轉(zhuǎn)換可能導(dǎo)致得不到正確的結(jié)果。
比如,我們對(duì)一個(gè)文本文件進(jìn)行加密,這個(gè)文件是ANSI格式存儲(chǔ)的,當(dāng)從文件內(nèi)容讀入一行到內(nèi)存的時(shí)候,自動(dòng)將內(nèi)容轉(zhuǎn)換成了Unicode格式,如果這時(shí)候?qū)ζ渥黾用苓\(yùn)算,其結(jié)果和文件中字符串加密結(jié)果是不一樣的,這樣的結(jié)果如果讓別人解密將無(wú)法得到正確的結(jié)果。如果對(duì)讀入內(nèi)存的內(nèi)容先做個(gè)轉(zhuǎn)換(textline是讀入內(nèi)容):
? ? ?plaintext?= StrConv(textline,?vbFromUnicode)
再對(duì)plaintext做加密,其結(jié)果就一樣了。
舉例(按行做加密和解密運(yùn)算,算法是AES+Base64):
[vb]?view plain?copy
Status?=?"Encrypting?File"
Open?FileName?For?Input?As?#1??????'?打開(kāi)輸入文件。
Open?FileName2?For?Output?As?#2?????'?打開(kāi)輸出文件。
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??????'?打開(kāi)輸入文件。
Open?FileName2?For?Output?As?#2????'?打開(kāi)輸出文件。
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)????'截掉加密時(shí)補(bǔ)的0
MsgBox?TextLine??"end"
Status?=?""
Print?#2,?TextLine????'?將字符串寫入文件。
Loop
Close
名稱欄目:vb.net顯示繁體的簡(jiǎn)單介紹
網(wǎng)頁(yè)地址:http://jinyejixie.com/article46/hsiseg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、App開(kāi)發(fā)、自適應(yīng)網(wǎng)站、微信小程序、網(wǎng)站維護(hù)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)