什麼是NChardet
NChardet是mozilla自動字符編碼識別程序庫chardet的
NChardet是如何工作的
NChardet通過逐個比較輸入字符來猜測編碼
如何使用NChardet
要使用NChardet來探測編碼
語言線索是一個整數
ICharsetDetectionObserver接口只有一個Notify方法
代碼實例
//實現ICharsetDetectionObserver接口
public class MyCharsetDetectionObserver :
NChardet
{
public string Charset = null;
public void Notify(string charset)
{
Charset = charset;
}
}
int lang =
//用指定的語參數實例化Detector
Detector det = new Detector(lang) ;
//初始化
MyCharsetDetectionObserver cdo = new MyCharsetDetectionObserver();
det
//輸入字符流
Uri url = new Uri(
HttpWebRequest request =
HttpWebRequest)WebRequest
HttpWebResponse response =
(HttpWebResponse)request
Stream stream = response
byte[] buf = new byte[
int len;
bool done = false ;
bool isAscii = true ;
while( (len=stream
// 探測是否為Ascii編碼
if (isAscii)
isAscii = det
// 如果不是Ascii編碼
if (!isAscii && !done)
done = det
}
stream
stream
//調用DatEnd方法
//如果引擎認為已經探測出了正確的編碼
//則會在此時調用ICharsetDetectionObserver的Notify方法
det
if (isAscii) {
Console
found = true ;
}
else if (cdo
{
Console
found = true;
}
if (!found) {
string[] prob = det
for(int i=
Console
}
}
Console
From:http://tw.wingwit.com/Article/program/net/201311/11790.html