是否有办法发现有什么样的果园用了档案?
可靠地做到这一点的唯一办法是在文本档案的开头查阅http://en.wikipedia.org/wiki/Byte-order_mark” rel=“nofollow noretinger”>byte Order ~a>。 (这一游说一般代表使用的特性编码,但也指编码,例如UTF8、UTF16、UTF32)。 不幸的是,这种方法只用于统法协会编码编码编码编码编码编码编码系统,而在此之前则无所作为(必须使用较不可靠的方法)。
。 识别这些标识以确定编码的类型支持——你只需要将旗帜传递给参数本身:
new System.IO.StreamReader("path", true)
然后可以检查<代码>stremReader.CurrentEncoding的价值,以确定文档中使用的编码。 但请注意,如果无附编码标记,则CurrentEncoding
将违约至 编码。 Default
。
见:Detecting file Encodings in .NET 。
http://msdn.microsoft.com/en-us/netframework/a569610.aspx”rel=“nofollow noreferer”>Msdn :
虽然根据案文中某些细列顺序的概率,有人试图这样做,但没有发现一个任意的ANSI代码网页。 我们不试图精简Reader。 诸如XML或超文本等几种档案格式可以说明档案第一行的特性,因此网络浏览器、数据库和XmlTextReader等类别能够正确阅读这些档案。 但许多文本档案中没有这类信息。
无法以100%的可靠性做到这一点。 你们必须决定哪一种成本与准确性的权衡,你们是舒适的。 我在这次答复中讨论了许多可能的算法(与pros & cons): 忽略双亲档案的搜索稿
我先在C++中就这样说了,而且这很复杂。 这里,我做了些什么(接受与第一道做的):
- Look for Byte Order Marks
- Check if the text is valid UTF-32 BE/LE
- Check if the text is valid UTF-16 BE/LE
- Check if the text is valid UTF-8
- Assume current code page
这涉及许多没有生物能力的文本档案,但并不帮助储存在海关ANSI代码网页上的文本。
因此,不可能进行决定性的检测。 例如,用“西欧”违约代码页的计算机“东欧元”加固和装载的文档将被拆解。
在这种情况下,唯一的帮助可能性是让用户选择代码网页(从用户的经验来看,最好让用户在看到文本时改变假定编码)。
它根据一套测试方法开展工作,但当然可能作出错误解释,如果不可能的话。
可通过对案文的统计分析确定准则的页数(例如,带有非ASCII特性的品格和三重物品的频率,或以不同语文列出的字数,但我没有发现任何适当的办法试图这样做。
Win32 IsTextUnicode 臭名昭著,它只检查UTF-16,并且可能是“bush hid the fact”的背后方。
在可能有用的链接清单中添加一栏小类,一把一栏目放在一起,以发现单编码编码编码编码(与BOM有或没有BOM)与一个默认代码页(通常称为Windows-1252,在互联网上称为“ASCII”作为编码。 ASCII:
它采取的一些步骤超出了“精简程序”的缺省功能,基本上完全是上面回答中说的“......”。
- First check for a BOM, use it if provided
- Otherwise, check what Unicode encodings the file COULD be.
- For each possible unicode encoding found, check whether that encoding is LIKELY for the provided data (assuming primarily western-european content)
- If the "possible" unicode encodings don t look likely, use the default codepage/encoding provided
回答太晚了——我最近才清理了这个班子并将其放在网上。
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding