zoukankan      html  css  js  c++  java
  • VS读取文件或写入文件时出现中文乱码问题

    最近我发现我从文本文档中读取文件处理后再存入新文本文档后,只要是有中文的都显示乱码了~~当我把中文去掉后一切又都正常了,而在我处理过程中,很确定没有对中文进行处理。使用记事本打开发现没有乱码现象,但是在VC里显示是乱码,而且原来可以运行的也不能运行了,去掉中文后一切正常。

    参考网上的一些资料发现:

    • 操作系统默认编码是大多是ANSI(具体有不同),txt记事本打开文件时默认以系统默认的缺省编码方式打开(中文为GB2312),所以在记事本中打开时显示正常。而VS打开以及新建文件使用的是UTF8编码。所以会出现乱码错误。解决办法很简单:
    • 出现中文时,打开文件请使用:

    StreamReader read = new StreamReader(filename, System.Text.Encoding("GB2312"));

    String strContent=File.ReadAllText(filename,Encoding.GetEncoding("GB2312"));

    新建文件请使用:

    StreamWriter writer= new StreamWriter(filePath , false, Encoding.GetEncoding("GB2312"));

    writer.Write(content);//content为要写入的内容

    sw.Flush();

    sw.Close();

    亲测可用,问题解决! 网上找了弄了好久才解决掉。

    切记:打开时要用,写入是也要用!莫忘写入时编码!!切勿使用UTF8~~没用的……

  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    Python, pandas: how to sort dataframe by index// Merge two dataframes by index
    永久修改VS include目录
    <OFFER05> 05_ReplaceSpaces替换空格
    用二叉树进行排序 x (从小到大)
  • 原文地址:https://www.cnblogs.com/ShaYeBlog/p/5057997.html
Copyright © 2011-2022 走看看