c# - C# WriteAllText 仅以编码 UTF8 格式写入
问题描述
我已经使用下面的代码来编写文件。
File.WriteAllText(fileName, data, Encoding.Unicode);
当我使用下面的代码读取文件时,因为文件编码的类型是特定于运行时的。
using (StreamReader sR = File.OpenText(fileName))
{
encoding = sR.CurrentEncoding;
}
我得到 Encoding.UTF8
我也使用了这个链接中的方法
任何人都可以建议找到编码的工作方式吗?
谢谢
解决方案
打开现有的 UTF-8 编码文本文件进行读取。
所以它不会猜测文件是用什么编码编码的。即使你Encoding.Unicode
在写入文件时使用了,File.OpenText
仍然会将它读取为 UTF-8。
如果要读取 中的文件Unicode
,可以StreamReader
这样创建:
using (StreamReader sR = new StreamReader(fileName, Encoding.Unicode)) {
encoding = sR.CurrentEncoding; // Unicode
// ...
}
如果您不知道文件编码,那么您需要检测编码。
推荐阅读
- modelica - Modelica 命令可以选择模型中所有相同类型的组件
- python - 单击布尔选项不能是必需的?
- angular - 使用 Angular 8 中先前输入的数据返回上一页
- c# - 为什么层次结构中的游戏对象无法毫无问题地找到它?解决了
- c# - 使用动态生成的类型进行变量声明和赋值
- lua - Lua Table - 搜索以字母开头的项目
- nuxt.js - Nuxt Vue 3,选项 api 工作正常时无法使用组合 api
- python - 如何使用 `add_next_tick_callback` 制作面板包裹的散景图?
- javascript - 在像抽屉一样的反应原生中显示垂直文本
- python - 为调用 Keras 模型的类设置种子