问题标签 [windows-1252]

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 投票
5 回答
15493 浏览

python - Python - 处理混合编码文件

我有一个主要是 UTF-8 的文件,但也有一些 Windows-1252 字符可以进入。

我创建了一个表来将 Windows-1252 (cp1252) 字符映射到它们的 Unicode 对应字符,并想用它来修复错误编码的字符,例如

但是尝试以这种方式进行替换会导致引发 UnicodeDecodeError,例如:

关于如何处理这个问题的任何想法?

0 投票
2 回答
5784 浏览

utf-8 - 字符集特殊字符

  • iso-8859-1 是 utf-8 的真子集吗?
  • 那么iso-8859-n呢?
  • windows-1252呢?

如果以上任何一项的答案是否定的,那么不相交的字符是什么?我正在测试一些检测字符集的逻辑,并希望编写测试来验证检测是否正常工作。

0 投票
2 回答
8284 浏览

javascript - ASCII > 128 的字符在 Javascript 中无法正确读取

我有一个包含 Javascript 文件的 HTML。此脚本包含一个特殊字符 ASCII 152。当我尝试显示 charCodeAt 时,我得到了不同的结果,但从来没有正确的结果。你能建议吗?谢谢

测试.HTML

使用 ANSI 编码的 TEST.JS 文件

  • 带有 x-user-defined charset 的 TEST.HTML:警报显示 63384。使用 %63232 有效,因为每个 char >128 都显示为 63232+char。
  • 带有 utf-8 字符集的 TEST.HTML:警报显示 65533。所有 > 128 的字符都显示为 65533。
  • 带有 Windows-1252 字符集的 TEST.HTML:警报显示 752。我找不到 ASCII 与显示内容之间的关系。

使用 UTF-8 编码的 TEST.JS 文件

  • 带有 x 用户定义的字符集的 TEST.HTML:警报显示 65533。所有 > 128 的字符都显示为 65533。
  • 带有 utf-8 字符集的 TEST.HTML:警报显示 65533。所有 > 128 的字符都显示为 65533。
  • 带有 Windows-1252 字符集的 TEST.HTML:警报显示 65533。所有 > 128 的字符都显示为 65533。
0 投票
2 回答
5379 浏览

bash - Cygwin终端不显示某些字符?

我正在运行一个股票 Cygwin 安装,并wget添加了包。

如果我运行命令

我明白了;注意字符显示不正确

如果我只是下载文件,记事本中的一切看起来都很好。

0 投票
1 回答
2782 浏览

c# - WebClient 抛出“没有可用于编码 1252 的数据”

我正在制作一个运行良好的程序,除了我开始创建一个更新系统并且不知何故它不工作。启动屏幕使用 webClient 检查更新,现在似乎也出错了。我进行了设置,以便启动屏幕下载文本文件。如果版本不匹配,则会启动一个单独的表单并使用 webClient 下载更新程序。我已经创建了这个表单两次。它有 1 个进度条、1 个 webClient、一个图像背景和 1 个标签。更新应该下载,在栏上显示其进度,然后打开更新程序并关闭主程序。我第一次创建表单时,我运行它,它会冻结而不下载文件。停止调试后,visual c# express 2010的设计窗口会崩溃,我不得不重新启动vc#。该窗口将显示我添加的所有项目,除了 webClient。

所以我从表单中删除了 webClient 并重试。我第二次遇到同样的错误。所以我用谷歌搜索了第一个错误,并在 hackforums 上找到了一个没有修复的回复。现在我完全迷路了。我所有的 webClients 似乎现在都在这样做,我不知道为什么。

这是我的启动画面中的代码:

这是我的更新程序的代码:

0 投票
2 回答
1961 浏览

encoding - 将阿拉伯语单词转换为 windows-1252

我正在向 oracle 数据库插入大量数据。

在该数据库中,文本以 windows-1252 格式存储。

原来要输入的东西很多,都需要转成这种格式。此外,所有这些数据都是阿拉伯语。

有人可以帮我找到一个在线转换器或将阿拉伯语单词编码为 windows-1252 格式的工具吗?

*希望细节足够

--rangana

0 投票
3 回答
59316 浏览

java - 如何读取具有特定字符编码的 Java 文件?

我正在尝试根据此方法的输出以 UTF-8 或 Windows-1252 格式读取文件:

到目前为止,我有:

我遇到的问题是将BufferedReader实例转换为FileReader.

此外:

  • 文件本身的名称 ( fileName) 不能被认为是特定的Charset;有时文件名将包含 UTF-8 字符,有时包含 Windows-1252。文件内容也是如此(但是,如果文件名和文件内容始终具有匹配的字符集)。
  • 只有内部的逻辑getCorrectCharsetToApply()可以选择要应用的字符集,因此在调用此方法之前尝试按文件名读取文件很可能会导致 Java 尝试使用错误的编码读取文件名......这会导致文件死亡!

提前致谢!

0 投票
2 回答
5634 浏览

java - Java 看不到文件系统上包含非法字符的文件

我正在试验我们在生产中看到的边缘案例。我们有一个业务模型,客户端生成文本文件,然后将它们通过 FTP 传输到我们的服务器。我们摄取这些文件并在我们的 Java 后端(在 CentOS 机器上运行)处理它们。我们的大多数 (95%+) 客户都知道以 UTF-8 格式生成这些文件,这正是我们想要的。然而,我们有一些顽固的客户端(但大帐户)在 Windows 机器上使用 CP1252 字符集生成这些文件。不过没问题,我们已经配置了我们的 3rd 方库(这是我们的大部分“处理”工作)以通过一些神奇的 voo doo 处理任何字符集的输入。

有时,我们会看到一个文件名中包含非法 UTF-8 字符 (CP1252)。当我们的软件尝试从 FTP 服务器读取这些文件时,正常的文件读取方法会阻塞并抛出FileNotFoundException

例外情况如下所示:

所以我认为正在发生的事情是,因为文件本身包含非法字符,我们甚至一开始就无法读取它。如果可以,那么无论文件的内容如何,​​我们的软件都应该能够正确处理它。因此,读取文件名中包含非法 UTF-8 字符的文件名确实是一个问题。

作为一个测试用例,我创建了一个非常简单的 Java“应用程序”来部署在我们的一个服务器上并测试一些东西(源代码在下面提供)。然后我登录到一台 Windows 机器并创建了一个测试文件并将其命名为test£.txt. 注意文件名中“test”后面的字符。这是 Alt-0163。我将它通过 FTP 传送到我们的服务器,当我ls -ltr在其父目录上运行时,我惊讶地看到它列为test?.txt.

在我继续之前,这是我为测试/重现此问题而编写的 Java“应用程序”:

当我从终端 ( java -cp . com/Driver t*) 运行它时,我得到以下输出:

test�.txt?!?!我做了一些研究,发现“�”是 Unicode 替换字符\uFFFD。所以我发生的事情是 CentOS FTP 服务器不知道如何处理 Alt-0163 ( £),所以它用\uFFFD( �) 替换它。但我不明白为什么ls -ltr显示一个名为test?.txt...的文件

无论如何,解决方案似乎是添加一些逻辑来搜索文件名中是否存在此字符,如果找到,则将文件重命名为其他名称(例如可能执行字符串replaceAll("\uFFFD", "_")或类似的操作)系统可以读取和处理。

问题是Java 甚至在文件系统上都看不到这个文件。test?.txtCentOS知道文件在test�.txt那里No such file or directory

我怎样才能让 Java 看到这个文件,以便我可以File::renameTo(String)对它执行?很抱歉这里的背景故事,但我觉得它是相关的,因为在这种情况下每个细节都很重要。提前致谢!

0 投票
1 回答
3433 浏览

character - C# - 获取字符的 ANSI 代码值

我想检索给定字符的 ANSI 代码值。例如,当我现在得到商标字符的 int 值时,我得到 8482。相反,我想得到 153,这是代码页 1252 中商标字符的值。

一些帮助将不胜感激。

于尔根

0 投票
1 回答
1314 浏览

browser - 强制浏览器显示 ISO-8859-1 而不解释为 Windows-1252

从历史上看,许多宣传自己采用ISO-8859-1 ( Latin-1 ) 编码的网页实际上包含Windows-1252编码(这是 Latin-1 的严格超集)的内容。

浏览器更新了他们的行为以将所有 Latin-1 文本视为 Windows-1252,这已经是一个足够大的问题了。这种行为随后被合理化为HTML5 [draft] 标准

我正在写一组页面,我想在上面显示两种编码之间的区别,但这似乎是不可能的,因为我的 Latin-1 页面实际上从未被视为 Latin-1。在任何浏览器中,有什么方法可以真正强制尊重页面编码并显示演示?