如果我打开 xml 文件,Emacs 将显示中文字符

2024-01-28

我有一个 xml 文件。当我用 Emacs 打开它时,它显示中文字符(见附件)。这种情况发生在我的带有 Emacs 和记事本的 Windows 7 PC 上以及我的 Windows XP 上(见图 A)。图 B 是 A 的 hexl 模式。

如果我使用同事的Windows XP电脑,用记事本打开该文件,没有中文字符,而是一个奇怪的字符。我将其保存为 txt 文件,并通过电子邮件将其发送到我的 Windows7-PC(见图 C)。奇怪的字符被替换为“?”。 (由于限制,我无法使用同事的电脑并重现带有奇怪字符的记事本文件)。

我的问题: XML 文件中似乎有一些字符会产生问题。我不知道如何应对。有人知道我该如何解决这个问题吗?和编码有关系吗?感谢您的提示。


从图 B 可以看出,该文件是使用大端和小端 UTF-16 混合编码的。它开始于fe ff,这是大端 UTF-16 的字节顺序标记,以及 XML 声明 (<?xml version=...) 也是大尾数,但是以<report是小端字节序。您可以看出,因为这些字母出现在十六进制显示的第一部分的偶数位置,但更靠下的奇数位置。

另外,还有一个空字符(编码为两个字节,00 00) 就在之前<report。 XML 文档中不允许使用空字符。

然而,由于某些 XML 元素在图 A 中正确显示,因此似乎整个文件都存在混乱。文件已损坏,可能需要手动解决。

如果文件中没有非 ASCII 字符,我会尝试在 Emacs 中以二进制形式打开该文件(M-x revert-buffer-with-coding-system并指定binary),删除所有空字节(M-% C-q C-@ RET RET),保存文件并期待最好的结果。

另一种可能的解决方案是用汉字标记每个出现的区域并用M-x recode-region,给出“文本确实在”作为utf-16-le和“但是被解释为”为utf-16-be.

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

如果我打开 xml 文件,Emacs 将显示中文字符 的相关文章

随机推荐

  • 列出 LDAP 中的根上下文

    我想列出或搜索 LDAP 树中的根上下文 我使用 Apache Directory Server 和 Java Hashtable
  • 使用未分配的局部变量“字典”

    尽管我在以下代码中分配了值 但仍收到错误 使用未分配的局部变量 字典 private static void UpdateJadProperties Uri jadUri Uri jarUri Uri notifierUri Diction
  • 如何在真实设备上调试(使用Eclipse/ADT)

    我正在尝试弄清楚如何直接在我的手机 HTC Desire 上调试应用程序 我已经安装了手机附带的 USB 驱动程序 并且使用 adb devices 时会列出手机 如何配置 eclipse ADT 在手机上启动而不是启动模拟器 虚拟设备 注
  • ASP.NET MVC 和 WCF

    我目前正在努力学习 MVC 但在我的 在某个时刻学习 列表中 我还学习了 WCF 我只是想知道 WCF 是否应该 可以在 MVC 应用程序中使用 背景是我想要一个桌面应用程序 NET 3 5 WPF 与我的 MVC 网站交互 我想知道在两者
  • 通过单个命令安装私有和公共 NPM 软件包

    我在 package json 文件中列出了一些 npm 包 有些是公共的 有些是私有的 我想通过使用在单个命令中安装两种类型的包npm install 如果 npm 注册表设置为全局 则私有包显示404 那么如何通过单个命令来实现这一点
  • jetty-maven-插件和 loadTimeWeaver

    似乎无法让我的 Spring Web 应用程序与 jetty maven 插件一起使用 我总是得到 org springframework beans factory BeanCreationException Error creating
  • 我不懂指针

    什么是指针 什么是取消引用 如果p是一个指针 有什么区别 p some value and p other value 什么是p some variable意思是 什么是NULL指针 当取消引用 NULL 指针时会发生什么 准备一叠黄色便利
  • 运行 Quartz 作业时补偿时区偏移

    我有一个独特的问题 因为我的quartz作业调度程序实现是使用quartz net代码库版本2 0 1构建的 最近发现在运行和执行作业时时区和utc偏移量被忽略 这是该版本quartz net 中的一个继承错误 更新到版本 2 1 1 目前
  • 如何让 SQLCMD 仅输出错误和警告

    在执行 SQL 脚本文件时 如何让 SQLCMD 只输出它遇到的任何错误或警告 我本质上不希望输出基于信息的消息 这是不可能阻止的SQLCMD通过向其传递参数来返回非错误输出消息 但是 您可以做的是将错误消息重定向到STDERR 然后将所有
  • 为所有 UIViewController 实例设置全局默认后退按钮显示模式

    iOS 14 推出可配置后退按钮模式 例如 您可以在按钮上添加 后退 标签文本 但在紧凑的历史菜单中您仍然可以看到以前控制器的正确标题 我正在寻找一种简单 愉快的方法来配置默认模式 因此运行时的所有 UIViewController 实例都
  • 如何在不使用联接的情况下重写查询

    我想知道如果不使用连接 这个查询将如何编写 我一直试图找出连接不可行或无法使用 不可用 的情况 SELECT FROM table1 INNER JOIN table2 ON table1 id table2 id INNER JOIN t
  • SwiftUI macOS 列表行删除填充

    我正在尝试在 MacOS 的 SwiftUI 中的 ListView 中显示一行 但是 我的问题是该行周围包含填充 我想把它延伸到我的边界ListView 苹果使用 listRowInsets EdgeInsets 在他们的例子中 不过 这
  • Flutter - ListView.builder:初始滚动位置

    我想设置 ListView builder 的初始滚动位置 我希望列表从底部开始0 0 如果我设置reverse当然 在 listView 上 我将初始滚动位置设置为所需的位置 但我需要的是让最后一个孩子位于底部 是一个聊天应用程序 这是列
  • 不使用自定义域名时加载 Azure 证书

    据我了解 如果有人不想使用自定义域名 而是计划使用 Azure 分配给网站的 azurewebsite net 域 那么已经使用 Microsoft 的证书启用了 HTTPS 我知道这并不像与使用自定义域名一样安全 我如何才能以编程方式加载
  • 限制Python列表的长度

    我如何设置一个最多只能容纳十个元素的列表 我使用以下语句获取列表的输入名称 ar map int raw input split 并希望限制用户可以提供的输入数量 得到后ar列表中 您可以通过丢弃剩余的项目列表切片 as ar ar 10
  • 在 ASP.NET MVC 3 中应用数据注释时,您打算如何使用提示、描述、排序

    我有一个视图模型 其属性如下所示 Display Name Some Property Description This is description Prompt This is prompt Required ErrorMessage
  • 如何创建自定义键绑定以将语法突出显示更改为 Visual Studio Code 中的特定语言?

    key ctrl k m command workbench action editor changeLanguageMode 基于上面触发 选择语言模式 下拉菜单的默认键绑定 我假设我应该能够在自定义 keybindinds json 字
  • 使用自定义组件时,onChange 处理程序不会触发

    我在用着Formik https jaredpalmer com formik用于在 React 应用程序中进行验证 验证工作正常 但我的 onChange 处理程序未触发
  • 如何使用 knockoutjs 有条件地渲染 css 类

    我有一些像下面这样的html div class control group div
  • 如果我打开 xml 文件,Emacs 将显示中文字符

    我有一个 xml 文件 当我用 Emacs 打开它时 它显示中文字符 见附件 这种情况发生在我的带有 Emacs 和记事本的 Windows 7 PC 上以及我的 Windows XP 上 见图 A 图 B 是 A 的 hexl 模式 如果