对于UTF-16编码,C#同时具有System.Text.UnicodeEncoding和System.Text.Encoding.Unicode。两者之间的区别是什么?我应该何时使用每一个?
答案 0 :(得分:3)
System.Text.Encoding.Unicode
是一个返回System.Text.UnicodeEncoding
String line = "xxxxxxxxxxxxxxxxxxxxx";
int colums = 7;
for (int i = 0; i < line.length(); i++) {
System.out.print(line.charAt(i));
if ((i + 1) % colums == 0) {
System.out.println();
}
}
实例的属性。
如果默认值适合您的用例,请使用它。否则,请创建documented default settings的自定义实例。
答案 1 :(得分:1)
第一个是UnicodeEncodingClass,它具有使用UTF-16编码数据的所有功能。第二个,Encoding.Unicode,是一个返回UnicodeEncodingClass的缓存实例的属性,其方式与Encoding.UTF8或Encoding.ASCII对其各自编码的处理方式相同。
如果您需要以某种方式自定义实例(可能将byteorder更改为big endian),那么您应该创建自己的UnicodeEncodingClass实例,否则可以使用Encoding.Unicode快捷方式。