在VB中,我想使用Unicode字符

问题描述 投票:0回答:2

我有一个问题,当我尝试在VB控制台中输入日语字符时,它们显示为问号,而没有附加任何数据。我正在编写一个程序来帮助我对单词进行共轭,并且我需要能够输入日语字符。

是否可以更改设置以允许输入和输出这些字符?

vb.net visual-studio character-encoding console-application
2个回答
1
投票

我已经找到了解决方案!

  1. 将以下代码添加到代码顶部:
    Console.InputEncoding = System.Text.Encoding.Unicode

    Console.OutputEncoding = System.Text.Encoding.Unicode

这将允许外来字符input,但不允许您看到实际的字符,(这些字符将仅具有值)

  1. 运行代码
  2. 在控制台的左上方,有一个图标,单击它,然后单击properties

  3. 转到字体选项卡并更改字体。到目前为止,对我有用的都是以“ MS”开头的,但是“ SimSun-ExtB”也可以。

  4. 单击“确定”就完成了!

0
投票

[This document有多个Unicode范围的参考。

您可以尝试以下方法。请注意RichTextBox1.Text &= (ChrW(i))这是最重要的步骤。enter image description here

    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
© www.soinside.com 2019 - 2024. All rights reserved.