如何在VB.Net字符串文字中表示Unicode字符?

问题描述 投票:19回答:7

我知道您可以像这样将Unicode字符代码放入VB.Net字符串中:

str = Chr(&H0030) & "More text"

我想知道如何将char代码正确地放入字符串文字中,以便可以从设计器视图使用Unicode符号。

这甚至有可能吗?

vb.net string unicode designer
7个回答
28
投票

使用ChrW()函数返回Unicode字符。

Dim strW As String
strW = ChrW(&H25B2) & "More text"

14
投票

C#语言对此进行了转义:

var str = "\u0030More text";

但是在VB.NET中不可用。请注意,您几乎可以肯定[[do n't想要使用Chr(),这意味着可与默认代码页一起使用的旧代码。您将需要ChrW()并传递Unicode代码点。

您的特定示例没有问题,&H0030是“ 0”的代码,因此您可以直接将其直接放在字符串文字中。

Dim str As String = "0MoreText"

您可以使用Charmap.exe实用程序来复制和粘贴没有简单ASCII代码的字形。

6
投票
用Convert.ToChar替换Chr:

str = Convert.ToChar(&H0030) & "More text"


2
投票
我希望您可以使用XML文字和XML转义符,但是它不起作用。我不认为XML文字允许您使用&#NN;。尽管it is a way在字符串中包括引号"

'Does not compile :(' Dim myString = _ <q>This string would contain an escaped character &#30; if it actually compiled.</q>.Value


2
投票
我使用

Character Map实用程序(charmap.exe)。运行并选择控件字体中所需的字符,例如©Missico™,进行复制,然后粘贴到属性网格的Text属性中。您将必须更改字体,因为表单的默认字体是“ Microsoft Sans Serif”,它不是Unicode字体。我认为您不能对不可打印的字符使用此方法。

根据您的需要,您还可以使用本地化,它会为每种语言创建资源文件。同样,您将使用charmap.exe选择并复制所需的字符,然后将其粘贴到资源文件中。您可能可以使用不可打印的字符,例如制表符,换行符等,因为这只是文本文件(Unicode)。

0
投票
否,这是不可能的,因为VB字符串不支持转义序列。只需使用ChrW,它可以输入几个字符,但也更简洁。

0
投票
要显示Unicode字符,可以使用以下语句

    [ChrW(n),其中n是代表de Unicode字符的数字。
  1. Convert.ToChar(n)
  2. 使用Alt + N组合键直接在编辑器中键入字符
  3. 直接在编辑器中粘贴/复制Unicode字符
  4. Char.ConvertFromUtf32(n)
  5. 使用&#x....;语法的XML字符串
  • 分配♥字符的示例:

    s = ChrW(&H2665) s = Convert.ToChar(&H2665) s = "♥" 'in typing Alt+2665 s = "♥" 'using paste/copy of ♥ from another location s = Char.ConvertFromUtf32(&H2665) s = <text>I &#x2665; you</text>

    BUT当Unicode字符大于0xFFFF(C语法更易读😉)时,仅方法4、5和6有效!

      [ChrW()函数指示生成错误
  • [Convert.ToChar()函数在运行时崩溃
  • Alt + N被拒绝,因为它只接受4位数字
  • 示例

    lblCharacter.Text = "This solution works 😉" Debug.Print (Char.ConvertFromUtf32(&H1F600)) s = <text>diable: &#x1F608;</text>


    PS:直接在Visual Studio代码编辑器或Notepad ++中粘贴的笑脸(0x1F600)失去了背景色!说明:此答案中粘贴的笑脸用橙色填充,但是在Visual Studio编辑器或Notepad ++中,该颜色消失了!


    要在Visual Studio编辑器中使用字符串文字,必须使用方法3或4!

    在表单中(设计模式)

    enter image description here

    在属性中(请参见文本属性)

    enter image description here

  • © www.soinside.com 2019 - 2024. All rights reserved.