如何在VB.Net String literal中表示Unicode Chr代码?

Cod*_*ile 18 vb.net string unicode designer

我知道你可以将unicode字符代码放在VB.Net字符串中,如下所示:

str = Chr(&H0030) & "More text"
Run Code Online (Sandbox Code Playgroud)

我想知道如何将char代码直接放入字符串文字中,以便我可以使用设计器视图中的unicode符号.

这甚至可能吗?

小智 27

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

Dim strW As String
strW = ChrW(&H25B2) & "More text"
Run Code Online (Sandbox Code Playgroud)


Han*_*ant 14

C#语言通过转义支持这个:

var str = "\u0030More text";
Run Code Online (Sandbox Code Playgroud)

但这在VB.NET中不可用.要注意的是,你几乎肯定希望使用CHR(),这是为遗留代码与默认代码页的作品.您需要ChrW()并传递Unicode代码点.

您的具体示例不是问题,&H0030是"0"的代码,因此您可以直接将其直接放在字符串文字中.

Dim str As String = "0MoreText"
Run Code Online (Sandbox Code Playgroud)

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


小智 7

用 Convert.ToChar 替换 Chr:

str = Convert.ToChar(&H0030) & "More text"
Run Code Online (Sandbox Code Playgroud)


sch*_*ebe 7

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

\n\n
    \n
  1. ChrW(n)其中n是代表 Unicode 字符的数字。
  2. \n
  3. Convert.ToChar(n)
  4. \n
  5. Alt + N使用组合键在编辑器中直接输入字符
  6. \n
  7. 直接在编辑器中粘贴/复制 Unicode 字符
  8. \n
  9. Char.ConvertFromUtf32(n)
  10. \n
  11. XML 字符串使用&#x....;语法
  12. \n
\n\n

分配 \xe2\x99\xa5 字符的示例:

\n\n
s = ChrW(&H2665)\ns = Convert.ToChar(&H2665) \ns = "\xe2\x99\xa5" \'in typing Alt+2665\ns = "\xe2\x99\xa5" \'using paste/copy of \xe2\x99\xa5 from another location\ns = Char.ConvertFromUtf32(&H2665)\ns = <text>I &#x2665; you</text>\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是当 Unicode 字符大于0xFFFF时(C 语法更具可读性)时,只有方法 4、5 和 6 有效!

\n\n
    \n
  1. ChrW()函数指示构建时出现错误
  2. \n
  3. Convert.ToChar()函数在运行时崩溃
  4. \n
  5. Alt+N 被拒绝,因为它只接受 4 位数字
  6. \n
\n\n

例子

\n\n
lblCharacter.Text = "This solution works "\nDebug.Print (Char.ConvertFromUtf32(&H1F600))\ns = <text>diable: &#x1F608;</text>\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

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

\n\n
\n\n

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

\n\n

形式(设计模式)

\n\n

在此输入图像描述

\n\n

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

\n\n

在此输入图像描述

\n