Kanru’s 探險日誌

當發現美好的事物時,所要做的第一件事,就是把它分享給所有人

System.Text.UTF8Encoding

with 3 comments

在用 SmartIRC4Net 寫 irc 程式的時候發現,如果把 encoding 設成 System.Text.Encoding.UTF8 會導致無法連上 irc server。

很好奇的看了 SmartIRC4Net 的 code 結果沒什麼收穫,用的是一般的 StreamWriter 的初始化方法;如果改用 System.Text.UTF8Encoding 就可以正確連上了,而且這是 StreamWriter 預設的 encoding。

到底 Encoding.UTF8 和 UTF8Encoding 兩個有什麼不一樣呢?看了一下 mono 的實做方法,使用上這兩個都是 用 UTF8Encoding 的 instance,只是 Encoding.UTF8 是有 BOM 的,UTF8Encoding 則預設沒有。

就是因為那個多出來的 BOM 導致 irc server 無法認出正確的指令(因為不是 vaild ascii code),在一般使用上也要注意這兩者的差別。

Written by Kanru Chen

December 29th, 2005 at 2:25 am

Posted in Programming

Tagged with ,

3 Responses to 'System.Text.UTF8Encoding'

Subscribe to comments with RSS or TrackBack to 'System.Text.UTF8Encoding'.

  1. “只是 Encoding.UTF8 是有 mark 的”

    什麼樣的 mark?

    b6s

    30 Dec 05 at 2:39 am

  2. 噗.. 沒寫清楚,那時突然想不起來正確的名字.. 是 BOM.. Byte Order Mark 用 Encoding.UTF8 的話會在開頭加上 BOM

    kanru

    30 Dec 05 at 1:36 pm

  3. 果然… MS 最愛 BOM =_=

    b6s

    30 Dec 05 at 5:33 pm

Leave a Reply