C# 帮助使用 StreamReader 读取外文字符

2024-01-05

我使用下面的代码来读取包含外来字符的文本文件,该文件采用 ANSI 编码,在记事本中看起来很好。下面的代码不起作用,当读取文件值并在数据网格中显示字符时,字符显示为正方形,其他地方是否还有其他问题?

StreamReader reader = new StreamReader(inputFilePath, System.Text.Encoding.ANSI);
using (reader = File.OpenText(inputFilePath))

Thanks

Update 1:我已经尝试了下找到的所有编码System.Text.Encoding。并且都无法正确显示文件。

Update 2:我已将文件编码(重新保存文件)更改为 unicode 并使用System.Text.Encoding.Unicode而且效果很好。那么为什么记事本能够正确读取呢?为什么没有System.Text.Encoding.Unicode读取 ANSI 文件?


您还可以尝试默认编码,它使用当前系统的 ANSI 代码页。

StreamReader reader = new StreamReader(inputFilePath, Encoding.Default, true)

当您尝试对原始文件使用记事本“另存为”菜单时,请查看编码组合框。它会告诉您记事本猜测该文件使用哪种编码。

另外,如果它是 ANSI 文件,则 detectorEncodingFromByteOrderMarks 参数可能不会有太大帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 帮助使用 StreamReader 读取外文字符 的相关文章

随机推荐

  • 尝试在 css 中重新创建加载 gif

    我正在尝试用纯 css 重新创建以下 gif CSS在这里 http codepen io anon pen FmCaL http codepen io anon pen FmCaL 目前仅支持 webkit chrome 我试图通过使用前
  • Java中如何并行添加两个数组?

    比如有两个巨大的 长度2 3百万 的数组float or double 需要它们很快加起来 怎么做 有这方面的库吗 采用固定线程池 线程数等于处理器核心数 有多少个线程就提交多少个任务 每个任务都会接收其需要求和的索引范围 在主线程中收集所
  • Firebase 数据库迁移

    来自 SQL 背景 我想知道如何在 Firebase 中进行数据库迁移 假设我在 firebase 中有以下数据 dateFrom 2015 11 11 timeFrom 09 00 现在前端客户端将以以下形式存储和期望数据 dateTim
  • 使用参数将表单提交到操作,Asp.Net.Core Mvc

    我正在尝试通过 ajax 在 asp net core 中提交排序下拉表单 操作还有其他参数 我也想执行这些参数 但表单不提交其他参数 我认为主要问题是剃须刀的形状部分 这是我行动的一部分 public IActionResult Prod
  • 可以在没有 UIWebView 的情况下运行 javascript 吗?

    是否可以运行一些 javascript 代码 也许有一个NSString作为输入 而不使用UIWebView 我想在单独的线程中运行此代码 因此 UIWebView 是不可能的 并且我真的不想渲染任何内容 只需返回结果即可 我没有尝试过 但
  • 如何从 OpenGL ES 中渲染的纹理读取像素

    我正在尝试从即时生成的纹理 RTT 渲染到纹理 中读取像素 我通过实施 Apple 建议的方法来拍摄此快照here http developer apple com library ios qa qa1704 index html 这对于呈
  • Java推断类型化HashSet的错误类型[重复]

    这个问题在这里已经有答案了 可能的重复 调用 TreeSet contains Long valueOf someLongValue 时出现 ClassCastException https stackoverflow com questi
  • Django settings.py 错误:不支持按文件名导入

    我在虚拟环境中运行 Django 使用 virtualenv 并且尝试添加自定义开发环境设置文件以在开发时简化应用程序配置 我的计划是用两行代码来完成此操作 if os environ get DEVELOPMENT None from l
  • 为什么 php rename() 会损坏我的文件?

    我正在使用 plupload 将多个文件上传到我的服务器 使用这个 有一个参数 url upload php upload php 在收到文件时捕获文件 如果文件被分块 可能会重新组合它们 收到完整文件后 它会将响应发送回原始页面 并显示绿
  • 如何测试你的Linux是否支持SSE2

    其实我有2个问题 SSE2兼容性是CPU问题还是编译器问题 如何检查您的CPU或编译器是否支持SSE2 我正在使用 GCC 版本 gcc GCC 4 5 1 当我尝试编译代码时 它给了我这个错误 gcc O3 msse2 fno stric
  • 谷歌浏览器扩展 :: console.log() 来自后台页面?

    如果我打电话console log something 从弹出页面或包含的任何脚本都可以正常工作 但是 由于后台页面不是直接从弹出页面运行 因此它不包含在控制台中 有什么方法可以让我得到console log 在后台页面中显示在弹出页面的控
  • 使用Java从多行字符串中删除空行

    我有一个多行字符串 其他行之间有一些空行 看起来像 def msg AAAAAA BBBBBB CCCCCC DDDDDD EEEEEE TEST FFFFF GGGGGG 我尝试了一些正则表达式 msg msg replaceAll n
  • 对文本文件中的每一行进行排序

    我有一个文本文件 其中每行包含一些单词 例如 stackoverflow coding programming tag question badges 我必须对每一行进行排序并保留行的顺序 例如 对于上面的例子 输出应该是 coding p
  • Azure 门户应用程序设置:“无法加载设置”(ReadOnlyDisabledSubscription)

    在 Azure 门户中 我选择我的 Web 应用程序 然后选择 应用程序设置 它显示以下内容 应用程序设置和连接字符串的错误消息 无法加载设置 我该如何解决 附加信息 与我具有相同权限的另一个用户在访问同一应用程序设置页面时也遇到了此问题
  • 允许弹性项目保持固定宽度并在容器内水平滚动[重复]

    这个问题在这里已经有答案了 我有一位家长正在使用display flex 目前它有四个子卡 卡 但可能有更多 所有的孩子都需要大但相等的宽度 例如 每个孩子都需要一个40 宽度 如果发生这种情况 屏幕上只能容纳一定数量的孩子 我需要能够做到
  • 在 $group 的 mongodb 聚合框架中使用 $regex

    考虑以下示例 db article aggregate group id author docsPerAuthor sum 1 viewsPerAuthor sum pageViews 这按作者字段分组并计算两个字段 我有 author F
  • ServletContext.getRequestDispatcher() 与 ServletRequest.getRequestDispatcher()

    why getRequestDispatcher 字符串路径 的 ServletRequest 接口不能 扩展到当前 servlet 之外 语境 where as getRequestDispatcher 字符串路径 的 ServletCo
  • WinForm 绑定场景中的数据上下文生命周期

    这个问题困扰了我有一段时间了 但我不是专家 这有点长 我有一个带有 Outlook 风格 UI 的 WinForms 应用程序 也就是说 左侧窗格上有一个栏 允许您选择一个 WinForms 控件 屏幕 例如客户屏幕 右侧窗格上将出现一个客
  • 如何将文件名与路径分开? basename() 与 preg_split() 和 array_pop()

    Why use basename 在 PHP 脚本中 如果这个函数实际执行的操作可以写成两行 subFolders preg split ui path explode on or name array pop subFolder extr
  • C# 帮助使用 StreamReader 读取外文字符

    我使用下面的代码来读取包含外来字符的文本文件 该文件采用 ANSI 编码 在记事本中看起来很好 下面的代码不起作用 当读取文件值并在数据网格中显示字符时 字符显示为正方形 其他地方是否还有其他问题 StreamReader reader n