vb.net 如何将编码GB2312转成UTF8Imports 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编码,例如“广东”变成广东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编码是一个数组vb.net文字转简码,其中每个元素代表一个位码,还有ASCII和UTF8两种编码格式 。
Unicodevb.net文字转简码:
Dim bytes() As Byte() = System.Text.Encoding.Unicode.GetBytes("字符串")
ASCIIvb.net文字转简码:
Dim bytes() As Byte() = System.Text.Encoding.ASCII.GetBytes("字符串")
UTF8:
Dim bytes() As Byte() = System.Text.Encoding.UTF8.GetBytes("字符串")
vb.net 如何吧字符穿转换成键盘码(1)在Form1上布置一个Label,用来显示键盘码
(2)窗体代码如下
Imports System.Windows.Forms
Imports System.IO
Imports System.Net
Imports System.Windows.Forms
Imports System.IO
Imports System.Net
Public Class Form1
Private Sub Form1_Load(sender As Object,
e As EventArgs) Handles MyBase.Load
KeyPreview = True
End Sub
Private Sub Form1_KeyDown(sender As Object,
e As KeyEventArgs) Handles MyBase.KeyDown
Label1.Text = e.KeyValue
End Sub
End Class
按键盘上的键,Label1将显示对应键的键盘码
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类型表示字符串vb.net文字转简码,内部采用Unicode编码 。当需要在网络或串口中收发字符串时vb.net文字转简码 , 就需要在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)
说明vb.net文字转简码: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 k0 Then TextLine = Left(TextLine, k - 1)'截掉加密时补的0
MsgBox TextLine"end"
Status = ""
Print #2, TextLine' 将字符串写入文件 。
Loop
Close
vb.net 2008 如何将简体中文跟繁体中文互转呢?原来还有这么个功能 , 那有没有转换为拼音的方法?
我比你运气好,两个都有效:
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 = "中华人民共和国"
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参数不对,api 函数Long型要改为Integer类型 。
【vb.net文字转简码 vb数字转字母】关于vb.net文字转简码和vb数字转字母的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 用抖音直播伴侣直播,用抖音直播伴侣直播的时候能用事先录制的语音吗
- html绝对布局代码,css绝对布局代码
- pdf动图如何保存,pdf里放动图
- 关于linux进程通信命令的信息
- wordpress添加icon文件夹,wordpress添加文件下载
- 华为m6装鸿蒙系统,华为m6用鸿蒙系统
- flutter平台兼容,flutter支持什么语言
- vb.net有人用吗 vbnet ini
- 怎么写js的传入参数,js 传参