2011-09-06 50 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

相关问题