问题标签 [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.

0 投票
3 回答
2073 浏览

php - 在 PHP 中,如何处理 HFS+ 与其他地方的编码文件名的差异?

我正在创建一个非常简单的文件搜索,其中搜索数据库是一个文本文件,每行一个文件名。该数据库是使用 PHP 构建的,并且通过 grepping 文件(也使用 PHP)找到匹配项。

这在 Linux 中效果很好,但在使用非 ascii 字符时不适用于 Mac。看起来名称在 HFS+ (MacOSX) 上的编码方式与在 ext3 (Linux) 上的编码方式不同。这是一个test.php:

运行 MacOSX 时:

在 Linux(或 MacOSX 上安装了 nfs 的 ext3 文件系统)上运行时:

有没有办法让这个脚本在两个平台上返回“相等”?

0 投票
4 回答
2622 浏览

excel - 如何从VBA中的韩文字符串中提取字符

需要在 MS-Excel 和 MS-Access 中从韩语单词中提取首字母。当我使用 Left("한글",1) 时,它将返回第一个音节,即 한,我需要的是初始字符,即 ㅎ 。有这样做的功能吗?或者至少是一个成语?

如果您知道如何从字符串中获取 Unicode 值,我就可以从那里解决它,但我确信我会重新发明轮子。(再次)

0 投票
3 回答
201 浏览

mysql - 嗯,为什么用'2'或'2'查找返回相同的记录?

请原谅我的新手问题,但是为什么在 Mysql 中通过 '2' 或 '2' 查找返回相同的记录?

例如:

假设我有一个名为“slug”的字符串字段的记录,值为“2”。以下 SQL 返回相同的记录。

0 投票
2 回答
1114 浏览

unicode - 如何正确实施 Unicode 密码?

添加对 Unicode 密码的支持是开发人员不应忽视的一项重要功能。

尽管如此,在密码中添加对 Unicode 的支持是一项棘手的工作,因为相同的文本可以在 Unicode 中以不同的方式编码,并且您不希望因此而阻止人们登录。

假设您将密码存储为 UTF-8,请注意这个问题与 Unicode encodings 无关,它与Unicode normalization有关。

现在的问题是如何规范化Unicode 数据?

你必须确保你能够比较它。您需要确保下一个 Unicode 标准发布时不会使您的密码验证无效。

注意:仍然有一些地方可能永远不会使用 Unicode 密码,但这个问题不是关于为什么或何时使用 Unicode 密码,而是关于如何以正确的方式实现它们。

第一次更新

是否可以在不使用 ICU 的情况下实现这一点,例如使用操作系统进行规范化?

0 投票
2 回答
2592 浏览

python - Python regex \w 不匹配组合变音符号?

我有一个包含变音符号的 UTF8 字符串。我想将它与\w正则表达式序列匹配。它匹配具有重音符号的字符,但如果存在带有组合变音符号的拉丁字符,则不匹配。

(看起来 SO 降价处理器在上面的组合变音符号方面遇到了问题,但最后一行有一个 ́)

有没有办法将变音符号与 结合起来\w?我不想规范化文本,因为这个文本来自文件名,我还不想做一个完整的“文件名 unicode 规范化”。这是 Python 2.5。

0 投票
1 回答
452 浏览

unicode - 当变音符号在前面并且重音不组合形式时如何将 CodePage 规范化为 Unicode Form C

我希望能够说“通过强制变音符号进入它们的组合形式来规范化这个字符串”。

详细信息:
我的代码是用 C# 开发的,但我认为问题不是特定于语言的。

我的数据有两个问题(1)变音符号在此数据中的基本字符之前(它需要跟随在 Unicode 形式 D 或 KD 中的基本字符)。(2) 我的数据中的重音变音符号是希腊语 Tonos (U+0384) 但需要组合形式 (U+0301) 才能标准化。

我想以编程方式执行此操作。我认为这种类型的操作应该是众所周知的,但我没有在 C# Globalization 方法中找到支持(有规范化方法,但没有办法将变音符号强制转换为它们的组合形式)。

0 投票
6 回答
10583 浏览

java - File.listFiles() 使用 JDK 6 破坏 unicode 名称(Unicode 规范化问题)

在 OS X 和 Linux 上的 Java 6 中列出目录内容时,我遇到了一个奇怪的文件名编码问题:File.listFiles()和相关的方法似乎返回的文件名与系统其余部分的编码不同。

请注意,导致我出现问题的不仅仅是这些文件名的显示。我主要对文件名与远程文件存储系统的比较感兴趣,所以我更关心名称字符串的内容,而不是用于打印输出的字符编码。

这是一个演示程序。它创建一个具有 Unicode 名称的文件,然后打印出从直接创建的文件中获得的文件名的URL 编码版本,以及列在父目录下的相同文件(您应该在空目录中运行此代码)。结果显示该File.listFiles()方法返回的不同编码。

这是我在系统上运行此测试代码时得到的结果。注意%CC%C3字符表示。

OS X 雪豹:

KUbuntu Linux(在同一 OS X 系统上的 VM 中运行):

我尝试了各种技巧来让字符串达成一致,包括设置file.encoding系统属性和各种LC_CTYPE环境LANG变量。没有什么帮助,我也不想诉诸这样的黑客。

这个(有点相关?)问题不同,尽管名称很奇怪,我仍然能够从列出的文件中读取数据

0 投票
1 回答
1069 浏览

objective-c - NFD中如何判断一个NSString是否被规范化?

我需要确定给定的 NSString 是否为 NFD 形式。我怎么做?

语境 :

我从 Mac OS 获得的文件路径(以 NSString 的形式)是规范分解形式(NFD)。当文件系统是 HFSPlus 时尤其如此。 http://developer.apple.com/mac/library/technotes/tn/tn1150.html#CanonicalDecomposition

我需要一个预先组合的字符串。precomposedStringWithCanonicalMapping现在,只有当我知道文件名以 NFD 形式分解时,我才想运行该函数。

我能想到的解决方案:

我的解决方案好吗?另外,我对文件系统输出(在 NFD 中)的理解是否正确?

0 投票
1 回答
940 浏览

unicode - SPARQL 查询猫头鹰文件

我能问你关于 Ontology 的 SPARQL 查询吗?我有一个 family.owl 文件是从 protege 3.4 构建的带有数据的本体:

我在网站上使用 Java 和 CORESE API (http://www-sop.inria.fr/edelweiss/software/corese/v2_4_0/manual/index.php#coreseapi) 来查询上面的family.owl。使用以下 SPARQL 查询:

结果是 Tuấn(真实结果必须是 Tuấn)

如果我将“where”子句替换为:WHERE { fm:Tùng fm:haschild ?child }则结果为空(真正的结果必须是 Tuấn)

我知道字符串“Tùng”和“Tuấn”的错误结果。这个字符串有字符 unicode ù, ấ</p>

你能让我在 CORESE API 中使用 unicode 字符来用 sparql 查询 owl 文件吗?

0 投票
6 回答
2372 浏览

php - preg_match 函数在某些 PHP 脚本中无法正常工作

我正在使用 preg_match 函数从我制作的 2 个 PHP 脚本中的 textarea 表单中过滤不需要的字符,但其中一个似乎不起作用。

这是有问题的脚本:

因此,您可以看到 preg_match 只是过滤掉不需要的字符,例如 !"#$%&/() 等。

但每次我输入一个特殊字符,如“ñ”或“á”,它都会触发错误代码。

我有这个非常相似的脚本,它可以完美地与相同的 preg_match 配合使用,并且只过滤不需要的字符:

所以问题是,我在第一个脚本中做错了什么?

我尝试了一切,但总是失败并显示错误。

有什么建议吗?