Vb.net 在VB中,我想使用Unicode字符
我遇到了一个问题,当我尝试将日语字符输入VB控制台时,它们显示为问号,没有附加任何数据。我正在写一个程序,以帮助我共轭的话,我需要能够输入日语字符这样做Vb.net 在VB中,我想使用Unicode字符,vb.net,visual-studio,character-encoding,console-application,Vb.net,Visual Studio,Character Encoding,Console Application,我遇到了一个问题,当我尝试将日语字符输入VB控制台时,它们显示为问号,没有附加任何数据。我正在写一个程序,以帮助我共轭的话,我需要能够输入日语字符这样做 是否可以更改设置以允许输入和输出这些字符?我找到了解决方案 将以下代码添加到代码顶部: 这将允许输入外来字符,但不允许您查看实际字符(字符将只具有值) 运行代码 在控制台的左上角,有一个图标,单击它,然后单击 转到“字体”选项卡并更改字体。到目前为止,对我有效的是任何以“MS”开头的,但是“SimSun ExtB”也有效 单击“确定”,您就完成
是否可以更改设置以允许输入和输出这些字符?我找到了解决方案
RichTextBox1.Text&=(ChrW(i))
这是最重要的一步。
你说的是VB.NET还是VBA(办公应用程序)?因为你的标签中有这两个,而且它们是完全不同的应用程序。这能回答你的问题吗?您的问题是输入还是输出?如果您指的是实际的控制台输出,那么控制台可能根本没有显示字符所需的字体。在这种情况下,它将显示为???问题是输入和输出,据我所知,您不能直接在代码编辑器中键入它们。相反,您可以将
ChrW
函数与unicode类似的strW=ChrW(&H25B2)和“更多文本”
Console.InputEncoding = System.Text.Encoding.Unicode
Console.OutputEncoding = System.Text.Encoding.Unicode
Public Class Form1
Dim First_Unicode, Last_unicode As Integer
'Hexadecimal to Decimal
Public Function H2D(ByVal Hex As String) As Long
Dim i As Long
Dim b As Long
Hex = UCase(Hex)
For i = 1 To Len(Hex)
Select Case Mid(Hex, Len(Hex) - i + 1, 1)
Case "0" : b = b + 16 ^ (i - 1) * 0
Case "1" : b = b + 16 ^ (i - 1) * 1
Case "2" : b = b + 16 ^ (i - 1) * 2
Case "3" : b = b + 16 ^ (i - 1) * 3
Case "4" : b = b + 16 ^ (i - 1) * 4
Case "5" : b = b + 16 ^ (i - 1) * 5
Case "6" : b = b + 16 ^ (i - 1) * 6
Case "7" : b = b + 16 ^ (i - 1) * 7
Case "8" : b = b + 16 ^ (i - 1) * 8
Case "9" : b = b + 16 ^ (i - 1) * 9
Case "A" : b = b + 16 ^ (i - 1) * 10
Case "B" : b = b + 16 ^ (i - 1) * 11
Case "C" : b = b + 16 ^ (i - 1) * 12
Case "D" : b = b + 16 ^ (i - 1) * 13
Case "E" : b = b + 16 ^ (i - 1) * 14
Case "F" : b = b + 16 ^ (i - 1) * 15
End Select
Next i
H2D = b
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
RichTextBox1.Font = New Font("Cambria", 20, FontStyle.Regular)
First_Unicode = H2D(TextBox1.Text)
Last_unicode = H2D(TextBox2.Text)
'display 20 characters each line
Dim i As Integer
For i = First_Unicode To Last_unicode
RichTextBox1.Text &= (ChrW(i))
If i Mod 20 = 0 Then
RichTextBox1.Text &= vbCrLf
End If
Next
End Sub
End Class