首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试编辑文件时的错误消息:“内容类型(UTF-8)中指定的字符集与文件内容不匹配。”

尝试编辑文件时的错误消息:“内容类型(UTF-8)中指定的字符集与文件内容不匹配。”
EN

Stack Overflow用户
提问于 2021-12-29 10:49:58
回答 1查看 433关注 0票数 0

我有一个Zope 3框架,它的界面允许直接编辑浏览器中文件的内容。

到现在为止一切都很顺利。不幸的是,在某些文件上,我不能再编辑它们了,我有以下错误消息:

代码语言:javascript
复制
"The character set specified in the content type (UTF-8) does not match file content." 

下面是一张照片:

例如,我设法通过ftp下载了一个可以“编辑”并显示标题的文件:

代码语言:javascript
复制
<meta http-equiv="Content-Type" content="text/html; charset="utf-8"" />
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)" />
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)" />
<!-- 3,html,xhtml,charset="utf-8" -->
<meta name="src" content="content_final.tex" />
<link rel="stylesheet" type="text/css" href="content_final.css" />
 <script type="text/javascript" src="./jquery.js">
</script>

在下面的内容(正文)中,我有这样一个特殊的角色:

代码语言:javascript
复制
<br />&#x00A0;<span class="sectionToc" >6.5 <a
href="section32.html#x40-2480006.5" id="QQ2-40-259">Déplacement le long d&#8217;une courbe</a></span>
<br />&#x00A0;<span class="sectionToc" >6.6 <a
href="section33.html#x41-2520006.6" id="QQ2-41-268">Tenseur de Riemann-Christoffel</a></span>

我想知道这个问题是否来自于这些特殊的角色:&#x00A0;&#8217;

你觉得这个怎么样?utf-8在我的HTML文件中不受尊重吗?如何修正此错误,使其能够直接从浏览器编辑?

请告诉我,我需要在导入的HTML页面中添加或插入什么,或者命令(我使用的是vim / Debian GNU/LInux)来应用于它们,以便只有Unicode字符并且完全兼容。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-28 06:06:40

根据你提供的信息,我在这里给你我的意见。

似乎存在源代码编码问题。

每个文本文件都有自己的编码。

当表示超出基本ASCII集的字符时,将使用许多不兼容的编码。

目前,Unicode编码是可伪造的,因为Unicode字符集包含了世界上任何预先存在的编码中存在的所有字符。

如果您编写一个字符,您的文本编辑器将其内部保存为一个代码号,基于先前指定的编码。如果用于保存文件的编码与另一个应用程序期望的编码不同,则无法正确识别该字符。

通常,所有现代项目都使用UTF-8编码(由Unicode定义)。

因此,您应该确保所有源文件都以UTF-8文件的形式存储在内部。

据我所知,您可以编辑body文件,正如您所调用的那样。

在这种情况下,您可以尝试在文本编辑器中打开文件,然后将其编码更改为UTF-8,从而匹配无法编辑的ftp文件的编码。

每个现代的面向代码的文本编辑器都应该能够让您以一种方便的方式在所有著名的编码中进行选择。

然后,当然,你会保存你的文件。

另一种方法可能是重写文件,使文件中的所有字符在0x80下面都具有Unicode编码点,因为这些编码点与任何ASCII友好编码兼容,比如非常常用的ISO-8859-1编码。

由于您的法语字符é不属于ASCII集合,您可以使用HTML的符号和语法重写它:

代码语言:javascript
复制
&#x00E9;  

十六进制数00E9是十进制233,它是对应于字符:é (Latin Small Letter E with Acute)的代码点。

因此,您的文本如下所示:

代码语言:javascript
复制
D&#x00E9;placement le long d&#8217;une courbe  

如果您更喜欢使用十进制代码,那么编写:

代码语言:javascript
复制
D&#0233;placement le long d&#8217;une courbe  

为了帮助研究字符和其他属性的Unicode代码点,您可以使用以下网站:

  1. unicode-table.com
  2. 安培网站/

添加了

OP在评论中说,他实际上需要使用vim将文件保存到utf-8

下面是vim的命令:

代码语言:javascript
复制
:set fileencoding=utf-8
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70518365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档