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

时间:2010-06-29 19:32:13

标签: vb.net string unicode designer

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

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

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

这甚至可能吗?

7 个答案:

答案 0 :(得分:26)

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

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

答案 1 :(得分:14)

C#语言支持转义:

var str = "\u0030More text";

但这在VB.NET中不可用。请注意,您几乎肯定想要使用Chr(),这适用于使用默认代码页的遗留代码。您需要ChrW()并传递Unicode代码点。

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

Dim str As String = "0MoreText"

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

答案 2 :(得分:4)

用Convert.ToChar替换Chr:

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

我希望您可以使用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 

答案 5 :(得分:1)

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

  1. >>> intensity = 0.50 >>> >>> while intensity != 0.65: ... print(intensity) ... intensity = round(intensity + 0.05, 2) 0.5 0.55 0.6 ,其中ChrW(n)是代表de Unicode字符的数字。
  2. n
  3. 使用Convert.ToChar(n)组合键在编辑器中直接键入字符
  4. 直接在编辑器中粘贴/复制Unicode字符
  5. Alt + N
  6. 使用Char.ConvertFromUtf32(n)语法的XML字符串

分配♥字符的示例:

&#x....;

但是(当Unicode字符大于 0xFFFF (C语法更易读)时,仅方法4、5和6起作用!

  1. 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> 函数指示生成错误
  2. ChrW()函数在运行时崩溃
  3. Alt + N被拒绝,因为它只接受4位数字

示例

Convert.ToChar()

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


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

在表单中(设计模式)

enter image description here

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

enter image description here

答案 6 :(得分:0)

不,由于VB字符串不支持转义序列,所以不可能。只需使用ChrW,这可以输入几个字符,但也可以更清洁。