问题标签 [file-encodings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1462 浏览

java - Java源文件的字符集和失败的测试

首先,我想说我花了很多时间寻找解释/解决方案。我找到了问题的提示,但没有办法解决我的特定问题。因此,至少在某些情况下,该主题似乎已被打死。

我有一个 Java 测试类,可以通过 Mime 实用程序测试正确的编码/解码。用于测试的字符串在源文件中声明,我们在处理输入字符串后使用 assertEquals() 来测试相等性。这是一个例子:

在我的编辑器(以及 Notepad++ 和 UltraEdit 等其他外部编辑器)中,如果我选择将输入字符串读取为 windows-1252 或 ISO-8859-1 编码,则会正确显示输入字符串;UTF-8 将预期的字符串显示为“F�ltstr�m”。

在 Windows 7 机器上编译和运行时,我得到以下输出:

预期:S2,F�ltstr�m,PatrikS3

实际:S2、Fältström、PatrikS3

我在命令外壳和代码编辑器中都得到了这种行为。奇怪的是,它可以在 Windows XP 机器上运行。然而,我在命令 shell 中使用 chcp 检查了代码页,并且在两种情况下都得到了相同的输出。我让它工作的唯一方法是使用“-encoding windows-1252”编译类,出于各种原因我不想这样做。

所以问题是:1)XP和Windows 7之间有什么不同导致这个失败?默认平台编码是否已更改?2) 我该如何修复它才能在 Windows 7 机器和 Linux 机器上运行?

非常感谢您的任何见解!

0 投票
1 回答
29932 浏览

powershell - PowerShell 输出文件:防止编码更改

我目前正在尝试使用 powershell 自动执行一些搜索和替换操作。不幸的是,我昨天意识到我们的代码库中有不同的文件编码(UTF8 和 ASCII)。因为我们在不同的分支中执行这些搜索和替换操作,所以在这个阶段我无法更改文件编码。

如果我正在运行以下行,它会将所有文件更改为 UCS-2 Little Eindian,即使我的默认 powershell 编码设置为 iso-8859-1(西欧(Windows))。

有没有办法防止powershell更改文件的编码?

0 投票
3 回答
4089 浏览

python - Python 编码 - 有什么解释吗?

有人可以向我解释为什么 python 有这种行为吗?

让我解释一下。

背景

我有一个 python 安装,我想使用一些不在 ASCII 表中的字符。所以我改变了我的python默认编码。我以这种方式将每个字符串保存到文件.py中'_MAIL_TITLE_': u'Бронирование номеров',

现在,使用替换我的字典键的方法,我想以动态方式将我的字符串插入到 html 模板中。

我放入html页面的标题:

不幸的是,我的 html 文档(在那些替换之后)带有一些错误的字符(未转换?转换错误?)

所以,我打开一个终端并开始下订单:

问题

看看第 [7-10] 行。这不是很奇怪吗?为什么如果我的(第 6 行)python 有一个utf-8defaultencoding ,它会以与第 9 行不同的方式转换该字符串(第 7 行)吗?现在,看看第 [11-14] 行及其输出。

现在,我完全糊涂了!

提示

因此,我尝试更改输入文件的终端方式(以前是ISO-8859-1,现在是utf-8)并且发生了一些变化:

因此,编码(显式编码)独立于输入编码工作(或者在我看来,但我坚持了好几天,所以也许我搞砸了)。

解决方案在哪里?

通过查看 和 的第 8 行backgroundhint您可以看到创建的 unicode 对象存在一些差异。所以,我已经开始考虑了。我得出了什么结论?没有什么。除了保存我的 .py (包含必须插入到 html 文档中的所有 utf-8 字符)后,我的编码问题可能会出现在文件的编码中。

“真实”密码

该代码没有什么特别之处:它打开一个 html 模板,将其放入字符串中,用 unicode(utf-8ed ?希望是)字符串替换占位符,并将其保存到另一个文件中,该文件将从 Internet 可视化(是的,我的“登陆”页面已进入标题 utf-8 的规范)。我这里没有代码,因为它分散在几个文件中,但我确定程序的工作流程(通过跟踪它)。

最后一个问题

有鉴于此,有人知道让我的代码工作吗?关于unix文件编码的想法?还是 .py 文件编码?如何更改编码以使我的代码正常工作?

最后提示

在用 utf-8 对象替换占位符之前,如果我插入一个

我的文档在互联网上完全可见!

感谢那些回答的人。

EDIT1 - 开发工作流程

好的,这就是我的开发工作流程:

我有那个项目的 CVS。该项目位于 centos 操作系统上。该服务器是 64 位机器。我使用 Eclipse 将我的代码开发成 Windows 7(64 位)。每次修改都只能通过 CVS 提交来提交。该代码在使用这种 python 的 Centos 机器上执行:

我以这种方式设置 Eclipse 工作:PREFERENCES -> GENERAL -> WORKSPACE -> TEXT FILE ENCODING : UTF-8

Zope/Plone 应用程序运行在同一台服务器上:它为一些 PHP 页面提供服务。PHP 页面通过位于 Zope/Plone“服务器”上的 WS 调用一些 python 方法(应用程序逻辑)。该服务器直接连接到应用程序逻辑。

就这样

编辑2

这是执行替换的函数:

0 投票
4 回答
76470 浏览

utf-8 - 如何确定文件编码?

我有一个用 VIM 创建的 PHP 文件,但我不确定它的编码是什么。

当我使用终端并使用命令检查编码时file -bi foo(我的操作系统是 Ubuntu 11.04),它给了我下一个结果:

text/html; charset=us-ascii

但是,当我用 gedit 打开文件时,它说它的编码是 UTF-8。

哪一个是正确的?我希望文件以 UTF-8 编码。

我的猜测是文件中没有 BOM,并且该命令file -bi读取文件并没有找到任何 UTF-8 字符,因此它假定它是 ascii,但实际上它是用 UTF-8 编码的。

0 投票
2 回答
29855 浏览

java - 有没有办法用Java检查.txt文件的字符集编码?

有没有办法检查文本文件 (.txt) 是用 Unicode 编码还是用 Java 编码的 UTF-8?

0 投票
2 回答
10113 浏览

file - 如何在 IntelliJ IDEA 中设置默认系统文件编码

我希望 IDEA 使用任何默认系统编码,而不是使用通过“设置”>“文件编码”设置的任何内容。设置为 UTF-8。

我的应用程序在 Eclipse 中运行良好,它在 Windows 上使用默认系统编码,但是在通过 IDEA 运行应用程序时读取一些 xmi 文件时遇到问题。

0 投票
0 回答
169 浏览

android - 中文文件编码

我将我的 android 应用程序本地化为英语、捷克语和其他几种欧洲语言。我想添加中文、日文、韩文和俄文本地化。在文件编码等方面有什么特殊的方法吗?

0 投票
2 回答
1587 浏览

python - 当我在 Python 中使用 open(filename) 或在 C 中使用 fopen(filename) 时,保存文件的编码是什么?

运行时环境:Python 2.7、Windows 7

注意:我说的是 PYTHON 源代码生成的文件的编码(不是说 PYTHON 源文件的编码),PYTHON 源文件顶部声明的编码确实与 PYTHON 源文件的编码一致得救了。

当 string() 中没有非 ascii 字符时content = 'abc',文件( file.txt,而不是 PYTHON 源文件)在 之后以 ANSI 编码保存fp.close(),PYTHON 文件(并以 ANSI 编码格式保存)内容如下:

但是当 string() 中有一些非 ascii 字符时content = 'abc莹',file( file.txt) 将在 之后以 UTF-8 编码保存,尽管我在 PYTHON 源文件(不是)fp.close()的顶部声明了编码。此时,PYTHON 源文件的内容如下:file.txt#encoding=gbk

有没有证据表明它的行为是这样的?

0 投票
2 回答
3202 浏览

visual-studio-2012 - 声明“utf-16”中的 VS 2012 编码与文档“utf-8”不匹配

当我打开 Visual Studio 2012 时,我收到消息“Visual Studio 声明中的编码 'utf-16' 与文档 'utf-8' 的编码不匹配”。

Visual Studio 错误对话框

有谁知道为什么会发生这种情况?或者我应该做什么故障排除?

0 投票
1 回答
2735 浏览

python - 混合编码的文件 - Python

我有一些混合编码的文件,我相信 UTF-8 和 UTF-16LE。它是一些英文字母的混合,但主要是汉字。目标:使用 Python 将文件全部转换为 UTF-8。'\n' 应该是换行符。

类似问题的答案似乎会有所帮助。不幸的是,(我相信)因为 UTF-16 不是可变长度编码,所以当我尝试首先使用 UTF-8 解码文件但又使用 UTF-16 时,我收到此错误:

UnicodeDecodeError:“utf16”编解码器无法解码位置 0 中的字节 0xff:截断数据。

文件数据如下。我已经玩了一段时间了,似乎什么都做不了。还有很多我也不确定。我知道文件的开头有一个BOM,但是我对其余的编码问题不太了解。谢谢你的帮助!

打印 %r,使用 open 函数:

使用 MS Word 作为“unicode”打开时的文件文本: