我做了一个在线文本编辑器,就是用来修改文本文件,  但是文本文件有 UTF-8 UNICODE ANSII 各种编码类型,我读取文件的时候需要判断才行啊,就像EditPlus打开文本文件一样,可以得到编码,  我如何用ASP.NET 实现判断呢??

解决方案 »

  1.   

    http://topic.csdn.net/u/20110127/16/45de55c2-f1dc-4d17-b795-111546c8ce30.html
      

  2.   

    http://msdn.microsoft.com/en-us/library/dd318125(v=vs.85).aspxGetTextCharset() API当然,并非百分之百准确。不是这个函数的问题,而是它也是猜测。
      

  3.   

    你可以参考
    http://msdn.microsoft.com/en-us/library/dd374085(v=vs.85).aspx所有和字符相关的API。
      

  4.   

    UTF-8有的文件有BOM(BOM就是表示文件类型的前两个字节或三个字节),有的文件没有BOM。
    当UTF-8没有BOM的时候,记事本就不能严格区分ANSI文件和UTF-8文件。
    这种情况下记事本只能根据文件中的内容进行猜测。如果ANSI文件中内容刚好和某些UTF-8编码匹配,记事本就会把它误当作UTF-8来处理,从而显示乱码。
    一个比较常见的例子是“没”,把一个汉字“没”输入文件,然后打开,当今绝大部分流行的文件编辑器都会显示乱码“û”。唯一能正确显示这个汉字的文件编辑器是PilotEdit,PilotEdit具有很强的编码识别能力。