2011-09-06 75 views
3

我想知道流或字符串轉換之前被編碼的方式。如果一個字符串不是utf-8,它將被轉換爲utf-8。有沒有辦法在vb.net中檢測流的編碼?

+0

好吧,看看這個http://stackoverflow.com/questions/90838/how-can-i-detect-the-encoding-codepage-of-a-text-file – Dewfy

回答

1

您可以使用WinAPI的功能IsTextUnicode它採用了啓發式的猜測正確的編碼。請注意,這可以去hilariously wrong

的最好方法是不接受流而不對其編碼的外部信息,和如若不然,內部信息(諸如BOM,或用編碼信息的HTML元標籤)。

+0

好吧,但如果我只是爲了檢測到該流不是utf-8,然後將其轉換爲utf-8。 – marko

+0

@marko真的,在這種情況下,上述功能可能會工作得很好。據我所知,大多數含糊不清的是UTF-16LE。 –

+0

+1。參見[雷蒙德陳在IsTextUnicode的主題(http://blogs.msdn.com/b/oldnewthing/archive/2007/04/17/2158334.aspx)以及[這個重複的問題(HTTP:// stackoverflow.com/questions/90838/how-can-i-detect-the-encoding-codepage-of-a-text-file) – MarkJ

相關問題