web-dev-qa-db-ja.com

VB.Net文字列リテラルでUnicodeChrコードを表す方法は?

私はあなたがこのようなVB.Net文字列にUnicode文字コードを入れることができることを知っています:

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

デザイナーの観点からUnicode記号を使用できるように、文字コードを文字列リテラルに直接配置する方法を知りたいです。

これも可能ですか?

18

Unicode文字を返すには、ChrW()関数を使用します。

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

C#言語は、エスケープを使用してこれをサポートしています。

var str = "\u0030More text";

ただし、VB.NETでは利用できません。ほぼ間違いなくしないでください Chr()を使用したいことに注意してください。これは、デフォルトのコードページで動作するレガシーコード用です。 ChrW()が必要で、Unicodeコードポイントを渡します。

特定の例は問題ではありません。&H0030は「0」のコードなので、文字列リテラルに直接入れることができます。

Dim str As String = "0MoreText"

Charmap.exeユーティリティを使用して、簡単なASCIIコードがないグリフをコピーして貼り付けることができます。

14
Hans Passant

ChrをConvert.ToCharに置き換えます。

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

文字コード表ユーティリティ(charmap.exe)を使用します。コントロールのフォントで必要な文字(©Missico™など)を実行して選択し、コピーして、プロパティグリッドのTextプロパティに貼り付けます。フォームのデフォルトフォントはUnicodeフォントではない「Microsoft Sans Serif」であるため、フォントを変更する必要があります。印刷できない文字にはこの方法は使えないと思います。

必要に応じて、各言語のリソースファイルを作成するローカリゼーションを使用することもできます。ここでも、charmap.exeを使用して必要な文字を選択してコピーし、リソースファイルに貼り付けます。これは単なるテキストファイル(Unicode)であるため、タブや改行などの印刷できない文字を使用できる可能性があります。

1
AMissico

XMLリテラルとXMLエスケープを使用できることを期待していましたが、機能しません。 XMLリテラルで&#NN;を使用できるとは思いません。 それは方法です 文字列内に引用符"を含めることですが。

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

いいえ、できません。VB文字列はエスケープシーケンスをサポートしていないためです。ChrWを使用するだけです。

0
Philipp