如何将ASCII字符存储到“char”文字?
我想用于我的特殊字符的ASCII字符是文件分隔符号:
十进制:028
八进制:034
十六进制:01C
二进制:00011100
// This works in C/C++, but not C#:
static const char FS = 0x1C; // File Separator
答案 0 :(得分:13)
静态修饰符不是必需的,您必须显式地将int转换为char。
const char FS = (char)0x1C;
答案 1 :(得分:5)
我认为'\u001C'
会起作用。
答案 2 :(得分:2)
const char FS ='\ x1C';
答案 3 :(得分:0)
如果要将其写入流中,请注意编码; .NET的字符和字符串是UTF-16编码的,因此实际上会写为001C
(或1C00
,具体取决于字节顺序;我不记得是哪个)。您可以通过在打开流时指定适当的编码来避免此问题。
编辑:实际上,情况并非如此!刚刚测试过它,StreamWriter
等的默认行为是使用系统当前的ANSI代码页(通常是ISO-8859-1),所以它确实以预期的8位格式编写。当然,这会给非ANSI字符带来意想不到的结果。