我正在使用字符串分隔符,其中一个是«或174
。但是,当我单步执行代码时,它在调试器中看起来像是0174
。有关代码,请参阅here。
这是我在代码中进行参考的方式:
string fvDelimiter = ((char)174).ToString();
答案 0 :(得分:6)
关于字符编码。 174
(十六进制为AE
)在Unicode中为®,默认情况下在string
内部使用。但是Extended ASCII code中的«
。
请参阅您提供的文章中的差异:
插入ASCII字符
要插入ASCII字符,请在键入字符代码时按住ALT。例如,要插入度数(º)符号,请在数字小键盘上键入0176时按住ALT。
插入Unicode字符
要插入Unicode字符,请键入字符代码,按ALT,然后按X.例如,要键入美元符号($),请键入0024,按ALT,然后按X.
答案 1 :(得分:1)
据我所知,它基于使用的字体。在Windows上,我使用“字符映射”来检查它们。例如,字体Calibri中的“«”字符是171。
答案 2 :(得分:1)
原因很简单,c#中的char
代表完全匹配的unicode
字符代码0174而不代表ASCII
代码是
这里有一个代码,可以让你更了解我的意思
var chrs = System.Text.Encoding.ASCII.GetChars( new byte[]{0174});
var chrsUtf = System.Text.Encoding.UTF8.GetChars(new byte[] { 0174 });
var chrsUnicode = System.Text.Encoding.Unicode.GetChars(new byte[] { 0174 });
Debug.WriteLine(chrs[0].ToString());
Debug.WriteLine(chrsUtf[0].ToString());
Debug.WriteLine(chrsUnicode[0].ToString());