コードでUnicodeを使用したい。Unicode値は0100で、Unicode文字列\u
を値に追加しています。文字列を使用するとmyVal="\u0100"
動作しますが、以下のように使用すると動作しません。値はのようになり"\\u1000";
ます。これを解決するにはどうすればよいですか?
Unicodeの値が異なる場合があるので、以下のように使用したいと思います。
string uStr=@"\u" + "0100";
コードでUnicodeを使用したい。Unicode値は0100で、Unicode文字列\u
を値に追加しています。文字列を使用するとmyVal="\u0100"
動作しますが、以下のように使用すると動作しません。値はのようになり"\\u1000";
ます。これを解決するにはどうすればよいですか?
Unicodeの値が異なる場合があるので、以下のように使用したいと思います。
string uStr=@"\u" + "0100";
ここにはいくつかの問題があります。1 つは、@"\u" が実際にはリテラル文字列 "\u" ("\u" と表すこともできます) であることです。
もう1つの問題は、「\ u」自体は有効な文字列ではないため、説明した方法で文字列を作成できないことです。コンパイラは、"\u" ("\u0100" など) の後に値が続くことを期待して、エンコードされた値がどうあるべきかを判断します。
.NETの文字列は不変であることを覚えておく必要があります。つまり、連結された例 (`@"\u"+"0100") で舞台裏で何が起こっているかを見ると、これが実際にハプニング:
したがって、メモリには 3 つの文字列があります。そのためには、すべての文字列が有効でなければなりません。
これらの値を処理するために頭に浮かぶ最初のオプションは、実際に整数として解析してから文字に変換することです。何かのようなもの:
var unicodeValue = (char)int.Parse("0100",System.Globalization.NumberStyles.AllowHexSpecifier);
これにより、単一の Unicode 文字値が得られます。そこから、文字列に追加するか、 を使用して文字列に変換できますToString()
。