A9S*_*9S6 1 .net c# unicode encoding character-encoding
string s = "test";
int charCount = s.ToCharArray().Length;
int byteCount = System.Text.Encoding.Default.GetBytes(s).Length;
Run Code Online (Sandbox Code Playgroud)
什么时候可以(charCount!= byteCount)发生?我相信Unicode字符但不是一般情况下.
.NET支持Unicode字符但是.NET的默认(System.Text.Encoding.Default)编码?"System.Text.Encoding.Default"显示"System.Text.SBCSCodePageEncoding"作为单字节的编码.
默认编码为UTF8,每个字符可包含1-4个字节的空间.
当字符串s中的任何字符使用多于1个字节时,charCount和byteCount将不相等.
要强制使用4个字节,可以使用Unicode编码进行检查,然后byteCount将= 8.
int byteCount = System.Text.Encoding.Unicode.GetBytes(s).Length;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
765 次 |
最近记录: |