标签: unicode-normalization

用户期望和unicode规范化

这是一个有点软的问题,如果有更好的地方,请随时告诉我.

我正在开发一些接受需要国际字符的密码的代码 - 所以我需要将输入的unicode字符串与存储的unicode字符串进行比较.很容易.

我的问题是这样的 - 国际字符集的用户通常期望在这种情况下正常化吗?我的谷歌搜索显示了一些冲突,从"总是这样做"(http://unicode.org/faq/normalization.html)到"不要打扰".没有正常化的利弊吗?(即,不太可能猜出密码等)

unicode user-experience normalization unicode-normalization

5
推荐指数
1
解决办法
316
查看次数

GWT中的Unicode规范化

可能重复:
在GWT中用等效的"eace"替换éàçè...

是否有一些库可用于在gwt中进行unicode规范化操作?(从上下文来保证拉丁O等于西里尔O,例如)

unicode gwt normalization unicode-normalization text-normalization

5
推荐指数
0
解决办法
119
查看次数

OS X - 如何计算规范化文件名

我需要在Windows和OS X上生成的文件名之间创建映射.我知道OS X "将所有文件名转换为分解的Unicode"但是,"大多数卷格式都不符合这些普通表单的确切规范"

因此,使用标准的UTF8 API将Windows名称转换为NFD并确保我拥有正确的OS X名称似乎并不是一件简单的事情.有没有办法确定实际的OS X文件名是什么,而无需在文件系统中实际创建文件,然后扫描目录以查看实际创建的内容?

unicode macos utf-8 hfs+ unicode-normalization

5
推荐指数
1
解决办法
1276
查看次数

什么组件在字符串中处理组合Diaeresis?

我正在使用Java编写文件名列表.

我观察到文件名中的一些单个字符,如a,ö和ü实际上包含一个序列,您可以将其描述为后续的两个单个ASCII字符:

ö由...表示o,¨

我通过检查看到了这个codePointAt().德语名称"Rölli"实际上是"Ro¨lli":

...
20: R, 82
21: o, 111
22: ?, 776
23: l, 108
24: l, 108
25: i, 105
...
Run Code Online (Sandbox Code Playgroud)

¨上面日志中的字符的值为776,即"组合分离".这是一种所谓的组合标记,属于字形,或者更确切地说是组合变音符号.所以这一切都有道理,但我不明白什么软件组件将两个字符组合到一个变音符号,以及指定此行为的位置.

  • 它与强大的字符代码表使用多个字节作为内部表示这一事实无关.几个字节与两个组合字符不同.
  • 任何简单print()的字符串都会显示组合字符,因此它不是上面的某个UI层.
  • 我记得也用PHP观察过这个.我猜任何现代语言都可以解决这个问题.

什么组件导致组合字符显示为单个组合字符?这一切有多可靠?

Java是一种规范化方法,可以生成组合代码点的单个代码点,就像这里一样吗?对使用正则表达式有帮助...

非常感谢任何提示.

java string character-encoding unicode-normalization combining-marks

5
推荐指数
1
解决办法
506
查看次数

可以用C++编译器规范化Unicode标识符吗?

在C++中,我们可以在标识符中使用各种Unicode字符.例如,您可以命名变量résumé.

那些带有重音的es可以用不同的方式表示:作为预组合字符或作为e具有组合重音字符的普通字符.许多应用程序规范化这些字符串,以便看似相同的字符串实际匹配.

看看C++标准,我没有看到任何需要编译器规范化标识符的东西,因此变量résumé可能与变量不同re?sume?.(在我的测试中,似乎并不像MSVC或clang标准化标识符.)

是否有任何禁止编译器选择正常形式的东西?如果不是,在翻译的哪个阶段应该进行规范化?

[要明确:我在谈论标识符,而不是字符串文字.]

c++ unicode language-lawyer canonicalization unicode-normalization

5
推荐指数
1
解决办法
171
查看次数

删除奇怪的字体编码

您好,我希望这是一个简单的问题,我正在通过 API 加载一些简单的数据,但是有些用户已经将其用户名设置为如下所示的精美字体。

 
Run Code Online (Sandbox Code Playgroud)

如何使用 PHP 将其转换为简单的标准编码,以便它显示为。

Web Reposts
Run Code Online (Sandbox Code Playgroud)

谢谢

html php fonts unicode-normalization

5
推荐指数
1
解决办法
222
查看次数

根据PHP中的W3C规范化Unicode

W3C验证器中验证我的网站的HTML代码时,我收到以下警告:

Line 157, Column 220: Text run is not in Unicode Normalization Form C.

…i??????????v??????????e???????????-????????????m??????????i??????????n????????…
Run Code Online (Sandbox Code Playgroud)

我正在PHP 5.3.x中开发它,所以我可以使用Normalizer类.

因此,为了解决这个问题,我应该Normalizer::normalize($output)在显示用户做出的任何输入时使用(例如注释),还是应该Normalizer::normalize($input)在将其存储到数据库之前用于任何用户输入?

tl; dr:我应该在将用户输入存储在数据库中之前还是仅在显示时使用Unicode规范化

php unicode web-standards normalization unicode-normalization

4
推荐指数
1
解决办法
3000
查看次数

用于测试Unicode相关问题的Unicode示例文本文件?

我正在寻找一个示例文本unicode文件(UTF-8),可用于测试与文本编码和解码相关的不同问题,包括:

  • 低ascii字符用法,如前32个代码
  • BMP之外的人物
  • NFC相关问题
  • XML编码/解码问题

主要是我想将文本复制到剪贴板,将其粘贴到应用程序的HTML文本区域,然后能够从页面中检索它.

这将能够识别在解码,编码甚至数据库级别可能发生的不同的Unicode相关问题.

unicode normalization utf-8 character-encoding unicode-normalization

4
推荐指数
1
解决办法
1万
查看次数

在Python中检查unicode字符串是否为NFC的有效方法?

我想检查字符串是否已经是NFC格式.目前我这样做:

unicodedata.normalize('NFC', s) == s
Run Code Online (Sandbox Code Playgroud)

我这样做是为了大量的字符串,所以我想要高效.上述方法似乎很浪费.它转换为NFC,然后进行字符串比较.

有更有效的方法吗?我考虑过:

len(unicodedata.normalize('NFC', s)) == len(s)
Run Code Online (Sandbox Code Playgroud)

这避免了字符串比较.但我不确定这是否总是正确的.如果NFC标准化始终改变非NFC字符串的长度,则此方法有效.这是一个有效的假设吗?

还有其他想法吗?

python unicode normalization unicode-normalization python-unicode

4
推荐指数
1
解决办法
506
查看次数

将上标 2 (²) 符号转换为字符串

我正在尝试从一些 lisp 文件中获取一串代码,以创建 unix 文件名并将其显示在网页上:

\n
(let ((code "(defun \xc2\xb2 (x) (* x x))"))\n (second (read-from-string code)))\n
Run Code Online (Sandbox Code Playgroud)\n

其评估结果为|2|. 事实上,只需键入即可\'\xc2\xb2计算为|2|, 而不是|\xc2\xb2|

\n

code字符串是从文件中读取的。我正在使用 SBCL 2.2.10。

\n

使用此方案,字符串的"x\xc2\xb2"解析方式与字符串相同"x2"

\n
(read-from-string "x\xc2\xb2")\n(read-from-string "x2")\n
Run Code Online (Sandbox Code Playgroud)\n

如何在read-from-string不对字符串中的代码进行修改的情况下做出正确的更改?

\n

sbcl common-lisp unicode-normalization

4
推荐指数
1
解决办法
95
查看次数