问题标签 [unicode-normalization]
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.
forms - 使用 Unicode 提交表单时如何避免浏览器 Unicode 规范化
在 HTML 中呈现以下 Unicode 文本时,事实证明,浏览器 (Google Chrome)在将数据发送回服务器时会执行某种形式的Unicode 规范化。(可能在表格 C中)。
但是,当使用圣经希伯来语 (בְּרִיךְ הוּא) 文本时,这很容易破坏文本,如这里所述(第 9 页)。
有什么办法可以避免浏览器自动文本规范化?
我写了一篇博客文章,更详细地描述了我面临的问题:http: //blog.hibernatingrhinos.com/12449/would-it-be-possible-to-have-a-web-browser-based-希伯来文文本编辑器
python - 哪种形式的 unicode 规范化适合文本挖掘?
我已经阅读了很多关于 Unicode 的内容,但我仍然对规范化及其不同形式感到非常困惑。简而言之,我正在从事一个项目,该项目涉及从 PDF 文件中提取文本并执行一些语义文本分析。
我已经设法使用一个简单的 python 脚本令人满意地提取文本,但现在我需要确保所有等效的正交字符串都有一个(并且只有一个)表示。例如,“fi”印刷连字应分解为“f”和“i”。
我看到 python 的unicodedata.normalize
函数提供了几种用于规范化 unicode 代码点的算法。有人可以解释一下:
- NFC
- NFKC
- NFD
- NFKD
我阅读了相关的维基百科文章,但对于我微弱的大脑来说,它太不透明了,无法理解。有人可以用简单的英语向我解释一下吗?
另外,您能否推荐一下最适合自然语言处理项目的规范化方法?
objective-c - 使用 NFD unicode 的 NSString 规范化
在我的应用程序中,我必须使用 NFD Unicode 系统规范化一个 NSString。我怎样才能做到这一点?我需要将用户输入的字符串转换为规范化的字符串,并且从这个规范化的字符串中,我必须计算一个数字。谁能帮我?
unicode - QWebView::findText 不适用于 Unicode 的组合变音符号
我正在使用QtWebKit
( QWebView
) 来显示文本,并且我想通过QWebView::findText
.
问题是必须显示的文本包含所谓的 Unicode 的组合变音符号,尽管它们应该忽略这些“标记”(字符),但它们QWebView::findText()
和 JavaScriptwindow.find()
都不会忽略这些“标记”(字符)。
例如,如果文本中有一个单词“ti̇̀krăs”(“t”,“i”,Combining Dot Above,Combining Grave Accent,“k”,“r”,“a”,Combining Breve,“s”), findText() 在搜索查询“tikras”(“t”、“i”、“k”、“r”、“a”、“s”)时无法找到该词。
在这种情况下,其他基于 WebKit 的浏览器(Chrome、Safari)似乎可以正常工作。
对于这种情况,我能做些什么吗?
macos - 将文件传输到 Web 服务器时转换 Unicode 分解
我在 OS X 上进行网站开发,并且经常发现自己将实时网站的某些部分(运行 Linux/LAMP)移动到在我自己的机器上运行的开发服务器上。一个这样的例子涉及下载图像(用户生成的内容,例如通过 ftp 下载),以一种或另一种方式处理它们,然后将它们放回生产站点。
所涉及的图像文件是在 Linux 机器中创建的,它们的文件名似乎使用 NFC 分解以 UTF-8 编码。另一方面,OS X 的 HFS+ 文件系统不允许 NFC 分解文件名并转换为 NFD。但是,一旦我完成并想要上传文件,它们的名称现在将使用 NFD 分解,因为 Linux 支持它们。因此,新上传的(在某些情况下是替换的)文件将无法通过预期的 URL 访问。
我正在寻找一种方法来在(最好)或之后(convmv
看起来是一个不错的选择,但我在此服务器上没有足够的权限在这种特殊情况下是不可能的)传输期间更改文件的 UTF 分解,因为我猜这是不可能事先做的。我已经尝试使用 Transmit 和 rsync(使用通常使用的部署脚本)进行 FTP 上传,但无济于事。rsync中的--iconv
选项似乎很理想,但不幸的是,我运行 rsync 2.6.9 的服务器无法识别它。
我猜很多人都有类似的问题,我很高兴听到任何解决方案或解决方法!
更新:在这种情况下,我最终将文件同步到运行 Ubuntu 的虚拟机,在那里运行 convmv,然后再次同步到我的登台服务器。虽然这工作得相当好,但它有点耗时。也许可以在 OS X 上挂载一个 ext 文件系统,然后使用它们原来的 NFC 分解文件名将文件存储在那里?
此外,为了在以后的 WordPress 安装中避免这个问题,这是我的用例,你可以在上传任何文件add_filter('sanitize_file_name', 'remove_accents');
之前添加一个简单的,你应该没问题。
python - 在 Python 2.7 中使用 unicodedata.normalize
再一次,我对一个 unicode 问题感到非常困惑。我不知道如何成功使用unicodedata.normalize按预期转换非 ASCII 字符。例如,我想转换字符串
到
我很确定 unicodedata.normalize 是这样做的方法,但我无法让它工作。它只是保持字符串不变。
我究竟做错了什么?
ruby - 按字素拆分 Unicode 实体
给我
如何让 Ruby 按字素拆分它?
macos - OS X - 如何计算标准化文件名
我需要在 Windows 和 OS X 上生成的文件名之间创建映射。我知道 OS X “将所有文件名转换为分解的 Unicode”,但是“大多数卷格式不遵循这些正常形式的确切规范”
因此,使用标准 UTF8 API 将 Windows 名称转换为 NFD 并确保我拥有正确的 OS X 名称似乎不是一件简单的事情。有没有办法确定实际的 OS X 文件名,而无需在文件系统中实际创建文件,然后扫描目录以查看实际创建的内容?
php - 字符串比较使用 PHP mysql_* SET NAMES UTF 8 和 Mysql Table With utf8_unicode_ci
我有一个带有State列的 Mysql 表- 这些州来自欧洲各地 - 表和列位于utf8_unicode_ci
.
当我调用我使用的数据库时
然后我通过这个简单的循环运行它
当它第一次达到预期的新值时,我得到:
布尔 假
布鲁塞尔
布尔 真
下次我得到:
布尔真
布鲁塞尔
布尔真
正如我所期望的那样。
当每次通过时遇到非拉丁字符时,问题就出现了:
boolean false
Baden-Württember
boolean true
当我将它们设置为相等时,然后当提取下一条记录(并且每条记录输入相同)时,它会失败,这是我使用相同的编码时,我实际上需要它来识别它们是相同的即使输入的字符不同。
不管发生了什么,我都尝试过utf8_encode
并Normalizer::normalize
从比较中得到一个真实的结果,这样我就可以在控制结构中使用它(例如,如果你上次看到它,这次不要打印它)但它失败了。
python - 如何将 unicode 重音字符转换为没有重音的纯 ascii?
我正在尝试从http://dictionary.reference.com/browse/apple?s=t等字典网站下载一些内容
我遇到的问题是原始段落有所有那些波浪线和反向字母等等,所以当我阅读本地文件时,我最终会得到那些有趣的转义字符,如 \x85、\xa7、\x8d 等.
我的问题是,有什么办法可以将所有这些转义字符转换为它们各自的 UTF-8 字符,例如,如果有一个 'à' 我如何将它转换成一个标准的 'a' ?
Python调用代码:
我在 Windows 7 系统上使用 wget-1.11.4-1(不要杀死我的 Linux 人,这是客户端要求),并且 wget exe 正在使用 Python 2.6 脚本文件启动。