如何找出文件的编码? C#

2024-04-24

好吧,我需要找出我在某个目录中找到的哪些文件是 UTF8 编码的,或者是 ANSI 编码的,以更改我稍后决定的其他编码。我的问题是..我如何确定文件是 UTF8 还是 ANSI 编码?这两种编码实际上都可以在我的文件中使用。


没有可靠的方法来做到这一点(因为该文件可能只是随机二进制文件),但是 Windows 记事本软件完成的过程在 Micheal S Kaplan 的博客中有详细介绍:

http://www.siao2.com/2007/04/22/2239345.aspx http://www.siao2.com/2007/04/22/2239345.aspx

  1. 检查前两个字节; 1.如果存在UTF-16 LE BOM,则将其视为(并加载)为“Unicode”文件; 2.如果存在UTF-16 BE BOM,则将其视为(并加载)为“Unicode (Big Endian)”文件; 3. 如果前两个字节看起来像 UTF-8 BOM 的开头,则检查下一个字节,如果我们有 UTF-8 BOM,则将其视为(并加载)为“UTF-8”文件;
  2. 检查 IsTextUnicode 以查看该函数是否认为它是无 BOM 的 UTF-16 LE,如果是,则将其视为(并加载)为“Unicode”文件;
  3. 使用 1998 年的原始 RFC 2279 定义检查它是否为 UTF-8,然后是否将其视为(并加载)为“UTF-8”文件;
  4. 假设 ANSI 文件使用机器的默认系统代码页。

现在请注意,有一些漏洞 在这里,就像步骤 2 所做的那样 无 BOM 效果不佳 UTF-16 BE(甚至可能存在错误 在这里,我不确定——如果是这样,那就是一个错误 在记事本中超越任何错误 IsTextUnicode)。

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

如何找出文件的编码? C# 的相关文章

  • MongoDB C# 驱动程序检查身份验证状态和角色

    这是我使用 MongoDB 身份验证机制登录 MongoDB 的代码 try var credential MongoCredential CreateMongoCRCredential test admin 123456 var sett
  • 如何自定义 DataTable 列的排序

    我需要对数据表列的值进行排序 该列包含字符串 整数或混合文本 例如 数据表列包含如下值 23 18 12 store 23 store a1 1283 25 如果我使用对值进行排序Dataview sort 方法会按此顺序产生 12 128
  • 如何向 UWP 项目添加 .NET dll 引用?

    我有几个适用于 NETv4 x 的 NET dll 项目 我将版本更改为 4 6 1 并重新构建 没有出现问题 当我尝试从 UWP 项目向它们添加引用时 出现错误 项目的目标是 NETCore 而文件引用的目标是 NET框架 这不是受支持的
  • 测试 hdf5/c++ 中的组是否存在

    我正在打开一个现有的 HDF5 文件来附加数据 我想向那个叫做的小组保证 A存在以供后续访问 我正在寻找一种简单的方法来创建 A有条件地 如果不存在则创建并返回新组 或者返回现有组 一种方法是测试 A存在 我怎样才能高效地做到这一点 根据
  • 实体框架代码优先 - 在另一个文件中配置

    使用 Fluent API 将表到实体的映射分开的最佳方法是什么 以便它全部位于单独的类中 而不是内联在 OnModelCreating 方法中 我目前在做什么 public class FooContext DbContext prote
  • 当我单击 GridView 项时返回 ImageView 实例

    当我点击GridView项时如何返回ImageView实例 我为 ItemClick 创建自定义绑定事件 public class ItemClickSquareBinding MvxBaseAndroidTargetBinding pri
  • Linq Where 本地计数器关闭在 VS watch 中的结果不同

    我尝试删除前 3 个元素array与 LinQWhere扩展功能 这是一个例子 var array new 1 2 3 4 5 6 7 8 9 var count 3 var deletedTest1 0 var test1 array W
  • __FUNCTION__ 宏的 C# 版本

    有人对 C FUNCTION 宏的 C 版本有好的解决方案吗 编译器似乎不喜欢它 尝试使用这个代替 System Reflection MethodBase GetCurrentMethod Name C 没有 LINE or FUNCTI
  • 防止复制构造和返回值引用的分配

    如果我有一个函数返回对类实例的引用 但我无法控制其源 比如说list
  • for 循环 - 没有效果的语句

    由于某种原因 我收到错误 statement with no effect关于这个声明 for j idx j lt iter j increment printf from loop idx i int idx punc ctxt j 你
  • 在生产者-消费者情况下使用条件变量

    我正在尝试了解条件变量以及如何在生产者 消费者情况下使用它 我有一个队列 其中一个线程将数字推入队列 而另一个线程从队列中弹出数字 当生产线程放置一些数据时 我想使用条件变量向消费线程发出信号 问题是有时 或大多数时候 它只将最多两个项目推
  • C#:如何使用 SHOpenFolderAndSelectItems [重复]

    这个问题在这里已经有答案了 有人可以举例说明如何使用 shell 函数吗SH打开文件夹并选择项目 http msdn microsoft com en us library bb762232 VS 85 aspx来自 C 我不太明白如何使用
  • 使用 Linq 进行异步Where过滤

    我有一个List通过填充的元素async调用 WebService 没问题 我需要过滤该列表以便在应用程序视图上显示某些内容 我试过这个 List
  • 用 C# 编写的带有点击移动的 WPF 游戏

    我试图将标签网格移动到鼠标的位置 就像冒险游戏中的移动一样 理想情况下 我会在途中删除并重新绘制它们 但是 现在我只想弄清楚如何将 int 转换为厚度或 pointtoscreen 到目前为止我有 player XMove int Mous
  • C# ToString("MM/dd/yy") 删除前导 0 [重复]

    这个问题在这里已经有答案了 可能的重复 格式化 NET DateTime Day 不带前导零 https stackoverflow com questions 988353 format net datetime day with no
  • 通过 MSBuild 调用 cl.exe 时无限期挂起

    我正在尝试在我的 主要是 C 项目上运行 MSBuild 想象一下一个非常庞大的代码库 Visual Studio 2015 是有问题的工具集 Windows 7 SP1 和 VS 2015 更新 2 即使使用 m 1 从而迫使它仅使用一个
  • C# - 为什么我需要初始化 [Out] 参数

    我有几个从本机 dll 导入的方法 使用以下语法 internal static class DllClass DllImport Example dll EntryPoint ExampleFunction public static e
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • ASP.NET Core:会话 ID 始终变化

    今天启动了一个全新的 ASP NET Core 网站 按照说明添加会话 我们在索引页上打印出会话 ID 它始终是唯一的 我认为这可能是 cookie 合规性 所以我在 Chrome 的高级设置和调试器中删除了所有 cookie 但横幅不会再
  • 在 C# 中读取/写入命令行程序

    我正在尝试与 C 的命令行程序进行对话 它是一个情绪分析器 它的工作原理如下 CMD gt java jar analyser jar gt Starting analyser 这是我想从我的 C 程序插入内容的地方 例如 I love y

随机推荐

  • SQL:计数和子查询

    再次使用 count 和 sql 在 sqlite 上 我有表格 论文 paper id doi 年份 作者 paper id author id inst id 作者 作者 ID 姓名 名字 安装 inst id 名称 see id in
  • 在哪里检查用户电子邮件尚不存在?

    我有一个帐户对象 可以像这样创建用户 public class Account public ICollection
  • 在 JQuery 中选择自定义数据属性

    我这里有一个清单 ul li here li li are li li some li li initial li li tags li ul 其中每个 li 项都有一个自定义数据属性 在 JQuery 上如何获取具有 data value
  • 队列对象只能通过继承在进程之间共享

    我有两个 python 类 它们共享一个基类 可以说它定义了一个 multiprocessing Queue 每个类都将在单独的子进程上启动 并且需要通过队列共享信息 现在 如果基类定义了一个队列 那么每个子类对象将实例化它自己的队列 从而
  • Android 应用程序首选项会自动清除

    突然之间 每次我启动应用程序时 我的用户首选项都会被清除 我没有直接在 Activity 中使用首选项 而是在我的 Application 对象中有一个辅助类 它可以像这样访问首选项 SharedPreferences prefs Pref
  • Meteor:多个不需要的 mongodb 连接使数据库部署饱和

    我维护了一些部署在 AWS elastic beanstalk 64 位 Amazon Linux 4 5 2 上的meteor 1 7 0 3 应用程序 所有连接到托管 mongodb 部署 在 Compose 上 mongodb 版本
  • Compass (sass) 和 Web 开发人员扩展

    我经常使用 Web 开发人员扩展中的 编辑 css 功能来编辑样式表 这是一个很棒的功能 但编辑 css 并将其复制回编辑器进行保存需要时间 我计划在下一个项目中使用 Compass 我想知道如何使用 SASS Compass 的 编辑 c
  • Java - 调整 WAV 文件的播放速度

    我可能很笨 但我似乎找不到解决我的问题的方法 NOTE 我发现很多人报告了这个问题 似乎它是由于较新的 Java 可能是 1 5 而发生的 也许不再支持 SAMPLE RATE 我无法找到任何解决方案 我正在尝试调整 SAMPLE RATE
  • SQL Server 存储过程中的循环

    我需要帮助编写调用另一个存储过程并向其传递值的存储过程 到目前为止 这是用 C 完成的 现在我想将其移动到存储过程并创建一个在特定时间调用它的 SQL 代理作业 有任何想法吗 情况就是这样 Table A PK TableA ID Tabl
  • d3.js:如何在圆环图中的标签下方添加值

    我是 d3 js 的新手 到目前为止我所取得的成就是 this https jsfiddle net saras arya ypdw96v9 使用教程和视频 Now I am trying to add the dataset value
  • python,将字典转换为按值而不是键排序的列表

    我正在构建一个 collections defaultdict int 来记录某个键在一组数据中出现的次数 后来我希望能够以降序方式对其进行排序 显然是先将其转换为列表 首先按最高值排序 我创建了如下字典 adict defaultdict
  • 是否可以使用 Google Glass 拍照而无需“点击接受”?

    我按照此处的代码使用 Google Glass 相机捕获图像 https developers google com glass develop gdk media camera camera capturing images or vid
  • C/C++ - 运行系统(“process &”),然后写入其标准输入

    我正在研究 Linux 和 C C 我编写了一个带有一些线程的程序 include pthread h 并使用 sudo 运行它 一个线程运行一个进程 mplayer 并通过添加 使其保持运行 以便system 可以快速返回 system
  • Android studio 搁置的更改消失了,甚至在 .idea/shelf 目录中也没有

    我在 Android studio 中搁置了一些更改 然而 由于某种原因 搁置的更改不再存在 我已经检查了 project directory idea shelf 但它们也不在那里 Android studio 是否会在 idea she
  • Twilio:自动驾驶仪发起对话

    我们是一家送货服务公司 下订单后 我们希望向我们的司机发出送货工作邀请 这些职位是先到先得 订单在我们的 NodeJS 服务器上处理 在使用 Twilio Autopilot 处理对话 询问工作详细信息 的同时 向每位司机发送短信 SMS
  • 将函数与 Angular 7 中注入的 html 绑定

    我想使用innerHTML 在运行时将函数绑定到注入的html 中 我的组件 Component selector my app template div div styleUrls my app css encapsulation Vie
  • ffprobe/ffmpg 静音检测命令

    我正在研究流静音检测 它正在 ffmpeg 中执行以下命令 ffmpeg i http mystream com stream af silencedetect n 50dB d 0 5 f null 2 gt log txt 我想获得日志
  • Elasticsearch 对字符串排序未返回预期结果

    当对包含多个单词的字符串字段进行排序时 Elasticsearch 会拆分字符串值并使用最小值或最大值作为排序值 即 当对值为 老虎之眼 的字段进行升序排序时 排序值为 Eye 当按降序排序时 排序值为 Tiger 假设我的索引中有 老虎之
  • C# 可以在列表框中显示图像吗?

    C 简而言之 我可以在列表框中显示图像吗 我有一个用户列表 我想在某些名称旁边显示一个绿色勾号 这可能吗 Thanks 以下代码显示如何在列表框中进行自定义绘图 using System Windows Forms using System
  • 如何找出文件的编码? C#

    好吧 我需要找出我在某个目录中找到的哪些文件是 UTF8 编码的 或者是 ANSI 编码的 以更改我稍后决定的其他编码 我的问题是 我如何确定文件是 UTF8 还是 ANSI 编码 这两种编码实际上都可以在我的文件中使用 没有可靠的方法来做