次のような特殊文字を含む文字列があります。文字列からUTF16文字を削除するには?
こんにちは。
私が知る限り、 ""はUTF16文字です。
この文字とUTF8以外の文字列を文字列から削除するにはどうすればよいですか?
問題は、.NETとJavaScriptが有効な2つのUTF8文字としてそれを参照してくださいということです。
int cs_len = "".Length; // == 2 - C#
var js_len = "".length // == 2 - javascript
strIn [0] 55356 UTF8文字です==☐
と
strIn [1]は57152 UTF8文字==☐
また、n
string res = null;
using (var stream = new MemoryStream())
{
var sw = new StreamWriter(stream, Encoding.UTF8);
sw.Write(strIn);
sw.Flush();
stream.Position = 0;
using (var sr = new StreamReader(stream, Encoding.UTF8))
{
res = sr.ReadToEnd();
}
}
return res;//Hello
string strIn = "Hello ";
string res;
byte[] bytes = Encoding.UTF8.GetBytes(strIn);
res = Encoding.UTF8.GetString(bytes);
return res;//Hello
と
は私も英語だけでなく中国語と日本語と他の言語、また他のUTF8文字だけでなく、サポートする必要があります:EXTのコードスニペットは、同じ結果を返します。符号を含むC#またはJavaScriptコードのUTF16文字を削除または置換するにはどうすればよいですか?ありがとうございました。
Umm「UTF-8は、Unicodeで定義されている可能性のあるすべての文字またはコードポイントをエンコードできる文字エンコードです」 - 文字はどのように「UTF16文字」でも「UTF8文字」でもありませんか?あなたの例はUTF-16で '3C D8 40 DF'、UTF-8で' F0 9F 8D 80 'です。 –
唯一の違いは、シリアル化したときのバイト数ですが、1文字は文字列の1文字だけです(javascriptとC#)。 – fbiagi
@ piet.t UTF16にはUTF8以上の文字が含まれているので、これまでのところ2つのUTF8文字を使用することができます。 – gscriptor