问题标签 [non-ascii-characters]

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 回答
781 浏览

emacs - 如何强制 emacs(或任何编辑器)像 ASCII 格式一样读取文件?

我无法在maninfo页面中找到此答案,也无法在此处或 Google 上进行搜索。我有一个文件,本质上是一个文本文件,但它在保存时不知何故搞砸了。(我认为文件前面不小心出现了一些奇怪的字节。)

我能够打开文件,使用heador是有意义的cat,但不使用任何类型的编辑器。

最后,我想做的就是在 emacs 中打开文件,删除“乱七八糟”的字符,并在清理后保存。但是,该文件很大,因此我需要诸如 emacs 之类的强大功能才能打开它。

否则,我想我可以尝试创建一个脚本来逐行读取它,强制脚本以文本格式读取它,然后编写它。但我想要一些快速的东西,因为我不会一遍又一遍地这样做。

谢谢!麦克风

0 投票
3 回答
2991 浏览

c - ANSI C:isprint() 为非 ASCII 字符返回 true?

我有一些 C 代码应该打印文件的全部内容。该程序以前可以很好地打印一个文件,但是当它打印一秒钟时,我一直看到一个绝对不应该存在的 Unicode 字符。

(包装在 a 中while(!feof(file))
应该只打印 ASCII 可打印字符,除非我弄错了。无论如何,它打印的第一件事是\357\277\275,它不是 ASCII,并且不可打印。

该文件仅包含以下内容:foo+bar.foo+t-bar.foo+completely fake

它打印出这个:(�foo+bar.foo+t-bar.foo+completely fake在奇怪的字符和其他字符之间有一个换行符)。

只需将其全部打印(a la putchar(c))将完全相同的字符放在行尾。

我什至尝试过使用另一个文件(通过重命名旧文件并使用指向另一个文件的软链接),但我得到了完全相同的结果。

如果文件为空,它也会执行此操作。

该文件是完全纯文本,用 vim 创建的,没有什么特别之处。

这是原始代码:

0 投票
1 回答
271 浏览

php - 数组不匹配未找到重音字符

嗯......我很难过,但我相信我希望有一个简单的解决方案!

我使用 Joomla,下面的代码查看被拉入页面的 Joomla 文章标题,并将适当的标志图像放在标题的左侧。

一切都适用于“伦敦”或“美国”等普通单词,但是当我的标题中有重音字符时,我遇到了数组无法工作/匹配的问题,如下所示:

é ö ü è ç

在 Joomla 文章中,文章标题是这样输入的 - Montgenèvre

有针对这个的解决方法吗?

编辑:我从调试中得到的输出如下(包括我的其他数组):

0 投票
1 回答
480 浏览

ios - NSURL 不为一个字符的非 ascii 字符串返回 nil

我一直在使用 NSURL 进行简单的 URL 验证,主要是为了清除我在特定应用程序中不想要的非 ascii 特殊字符。我将一个 URL 作为 NSString 的输入,然后尝试使用 URLWithString 创建一个 NSURL。如果返回 nil,则应用程序会显示错误消息。

例如,如果我输入“あか”作为输入(即两个日文字符),则 NSURL 为 nil。这一直按预期工作。但是我最近注意到输入一个只包含一个非 ASCII 字符的字符串,NSURL 会处理它并返回一个 URL 编码的值。因此,如果我输入“あ”作为输入,则生成的 NSURL 不是零。absoluteString 值为“%E3%81%82”。

我想知道这是 NSURL 中的错误,还是我不理解的某种漏洞。

我正在使用 Xcode 3.2.5 和 iOS 4.2 SDK。

0 投票
1 回答
637 浏览

unicode - (e)grep:重音字符不被识别为单词的一部分

我想使用 (e)grep 使用-w开关匹配整个单词。我已经设置了语言环境,但重音字符被视为单词边界,如下例所示:

amo忽略时如何找到cáñamo

0 投票
2 回答
720 浏览

php - jquery查找和替换重音到html代码

我正在使用 PHP、jQuery 和 mySQL 为我的网页构建一个管理站点。在这个管理部分的一个部分中,我使用一个<textarea>元素来写几行。我是西班牙人,我使用 á é í ó ú 和 ñ 字母。

我正在寻找任何将 á 替换为 á 的脚本

此外,我仍然无法将<textarea>内容发送到 mySQL。

错误是:

最后一件事是当用户请求 mysql 从表中读取内容时替换 áéíóú 和 ñ 字母。áéíóú 在此表中,我想在用户请求该内容时实时替换

0 投票
1 回答
701 浏览

php - 在 PHP 中从 JSON 或 XML 格式读取重音字符

我有一个 XML 文件,其中包含像æøåêèé 这样的重音字符。如果我只是使用 fread 读取文件,我可以轻松读取这些字符,但如果我使用 simplexml_load_string 或 DOMDocument,我将无法读取这些字符。

我尝试使用 json_decode 的 JSON 文件也是如此

我尝试使用 mb_convert_encoding 并将更改字符更改为 Window-1252、UTF-8 和许多其他编码,但没有任何效果。我正在使用 PHP 5.3.1。我希望有人帮助阅读此类字符的演示代码。以下是我尝试过但没有成功的基本代码

XML 文件

PHP 代码

0 投票
0 回答
221 浏览

javascript - 某些浏览器可以将 JavaScript 标识符中的非 ASCII 字符自动转换为相应的 ASCII 字符吗?

我一直在观察最近开始注入有缺陷的恶意脚本版本的恶意软件攻击。他们在过去 3 周内使用该脚本,我开始怀疑这是否真的是一个错误,或者他们只是针对某些浏览器的 JS 引擎的“功能”。

以下是详细信息:

恶意脚本(此处为完整版本:http: //pastebin.com/zQWepqtz)生成以wÍndow.gloa=(function()....注意Í而不是i in window开头的代码。该恶意脚本的先前工作版本生成了正确的window.gloa=(function()...代码。

问题:某些浏览器是否可以“考虑” wÍndow实际上与window相同并执行该代码?

0 投票
3 回答
1086 浏览

python - 如何更好地处理涉及 unicode 字符的编码和解码以及从 ascii 来回

我正在开发一个读取 xls 文件(MHTML 格式)的程序(Python 2.7)。我遇到的问题之一是文件包含不是 ascii 的符号/字符。我最初的解决方案是使用 unicode 读取文件

这是我在文件中读取的方式:

然后我使用 lxml 进行一些处理。这些文件有很多表,我处理的第一步要求我找到正确的表。我可以根据第一行第一个单元格中的单词找到表格。这就是棘手的地方。我曾希望使用正则表达式来测试单元格的 text_content(),但发现单词的变体太多(在 3,200 个文件的测试运行中,我发现了 91 种不同的方式来定义仅定义一个表被表达了因此我决定将特定单元格的所有 text_contents 转储出去,并在 excel 中使用一些算法来严格识别所有变体。

我用来编写 text_content() 的代码是

我是根据以前对类似于我的问题的回答来做的,似乎共识是使用 unicode 读取文件,然后在文件被写出之前对其进行编码。

所以我在 excel 中处理了标签/单词 - 将它们全部转换为小写并去掉空格并将输出保存为文本文件。

文本文件有一列包含我要查找的表格的所有独特标记方式

然后我正在阅读文件 - 我第一次阅读时使用

我运行我的程序,发现一些匹配没有发生,调查它我发现 unicode 用 \ufffd 替换了某些字符,如下例所示

更多研究表明,当 unicode 没有字符映射时会发生替换(可能不是确切的解释,但这是我的解释)

所以然后我尝试(在考虑了我必须失去什么之后)在不使用 unicode 的情况下阅读我的标签列表。因此,我使用以下代码阅读了它:

现在在我看到的解释器中查看相同的标签

然后我尝试使用这组标签进行匹配,我得到了这个错误

现在令人沮丧的是,tableHeader 的值不在测试集中当我在 tableHeader 损坏后询问它的值时,我收到了这个

当我在 Idle 中输入测试时雪上加霜

它正确返回 false

我知道代码 '\xa0' 是不间断空格的代码。当我在不使用 unicode 的情况下读入 Python 时也是如此。我以为我已经摆脱了 excel 中的所有空格,但为了处理这些我拆分它们然后加入它们

我还没有回答一个问题。抱歉,我仍在努力解决这个问题。在我看来,我在这里处理的是不一致的行为。当我最初读取字符串并使用 unicode 和 UTF-8 时,如果您愿意,所有字符都被保存/可传输。我对它们进行了编码以将它们写出来,它们在 Excel 中显示良好,然后我将它们保存为 txt 文件,它们看起来还不错但是发生了一些事情,我似乎无法弄清楚在哪里。

如果我可以避免写出字符串来识别正确的标签,我觉得我的问题会消失,但有 20,000 个或更多标签。我可以使用正则表达式来显着减少我的潜在列表,但其中一些只需要检查。

顺便说一句,我会注意到源文件都指定 charset='UTF-8'

回顾一下-当我使用 unicode 读取源文档和标签列表时,我无法进行一些匹配,因为标签有一些字符被 ufffd 替换,当我使用 unicode 读取源文档和标签列表时,我没有任何特殊处理我得到警告。

我想了解发生了什么,所以我可以修复它,但我已经用尽了所有我能想到的地方

0 投票
1 回答
1869 浏览

html - html 电子邮件中的某些客户端未呈现重音字母

我们正在发送时事通讯。据我所知,使用的格式是 html,但在某些客户端上,重音字母不会呈现,只是可以看到代码。例如:“   ”或“ é ”等。不幸的是我还不知道更多细节,因为我的朋友让我帮他解决这个问题。此类电子邮件的正确电子邮件标题是什么?我怀疑问题出在那儿。感谢您的帮助。

更新: 我现在得到了更多信息。问题是他们正在使用第三方提供的服务。它是基于网络的,使用 TinyMCE 来编辑邮件(不幸的是,我怀疑我是否可以访问设置)。无论如何,他们设法向我发送了邮件的标题:

内容传输编码:引用打印内容类型:文本/纯文本;字符集=ISO-8859-1

不应该是“text/html”而不是“text/plain”?因为如果它很简单,那么很明显它不是渲染的,对吧?或者发送的邮件头是否有可能是“text/html”,但是客户端的邮件软件无法处理html邮件并将其更改为“text/plain”?谢谢你的帮助,亚历克斯