using(StreamWriter sw = File
CreateText(@
d:\DefaultUTF
txt
))
{
sw
Write(
私
);
}
using(StreamWriter sw=new StreamWriter(@
d:\StreamUTF
txt
false
System
Text
Encoding
UTF
))
{
sw
Write(
私
);
}
using (System
IO
FileStream fs = System
IO
File
Create(@
d:\ByteUTF
txt
))
{
byte[] info = System
Text
Encoding
UTF
GetBytes(
私
);
fs
Write(info
info
Length);
}
一直以來
我認為上面三種方式的結果是一樣的沒有差別
今天才知道不是那麼回事
呵呵
覺得這個問題比較幼稚的可以不必往下看了
運行結果
是一樣的
都是E
A
而
會多出一個ZERO WIDTH NO
BREAK SPACE
也就是EF BB BF
當我們需要通過Byte Order Mark來標示該文件的編碼方式的時候
請使用方法
以上同樣適用於標明Big
Endian和Little
Endian的UNICODE
From:http://tw.wingwit.com/Article/program/net/201311/12267.html