问题标签 [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 投票
1 回答
1023 浏览

unicode - 比较中文unicode字符串,当多个码点是同一个字符时?

我正在编写一些处理汉字的 Java 代码,并且得到了一些意想不到的结果——应该相等的字符串不是。这是其中一个令人反感的字符,意思是“六”(拼音:liù):六。这个字符可以用两个代码点之一来表示:

块中的 F9D1:CJK 兼容表意文字
块中的 516D:CJK 统一表意文字

维基百科有一个关于这些字符范围的页面,关于兼容性表意文字的简短部分确实提到了一些重复,但列表省略了这个特定字符。

所以我想知道:

  1. 某处是否有重复的 unicode 字符列表,以便我可以在尝试比较它们之前转换字符串?
  2. 处理 CJK 字符时这是正常的,还是我做错了什么?
0 投票
1 回答
234 浏览

vb.net - 在 UTF8 Unicode 的排序规则下,哪些字符算作同一字符?什么 VB.net 函数可以用来合并它们?

还有什么是 vb.net 函数,它将所有这些不同的字符映射到它们最标准的形式。

例如, tolower 会将 A 和 a 映射到同一个字符,对吗?

我需要为这些角色提供相同的功能

德语

ß === s Ü === u Χιοσ == Χίος

否则,有时我会插入 Χιοσ 和后者,当我插入 Χίος mysql 抱怨该 ID 已经存在时。

所以我想创建一个唯一的 ID,将所有这些奇怪的字符映射成一个更稳定的字符。

0 投票
1 回答
1403 浏览

unicode - 如何在freetype中呈现组合的unicode字符?

我似乎在文档中找不到任何关于此的信息,一直使用的函数是 FT_Get_Char_Index(ftFace, i);,它只需要 1 个 unicode 代码点。但是组合字符,那些占用多个代码点的字符呢?

我知道其中一些字符可以简单地进行 unicode 规范化以表示为另一个(单个)代码点,但是有些字符不能,对吗?我们如何处理这些?

我正在制作一个通用的文本编辑软件,并希望它支持所有的 unicode。但也许这个问题与多代码点字符太小以至于不值得麻烦?这些字符在一些主要的亚洲语言中不是很常见吗?

如果不能用freetype正确完成,应该怎么做?

0 投票
1 回答
812 浏览

javascript - JS中的文本规范化

有没有办法在Javascript中将字符串转换为普通形式C ?我知道node.js 中的unorm,但我对浏览器内的 JS 很感兴趣,所以合理的标准浏览器 API 是可以的。

0 投票
0 回答
128 浏览

gwt - GWT 中的 Unicode 规范化

可能重复:
在 GWT 中将 éàçè... 替换为等效的“eace”

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

0 投票
1 回答
1089 浏览

java - 如何仅删除字符串中大写字符的变音符号

我需要从字符串中的大写字符中删除变音符号。示例:Électronique Caméras => Electronique Caméras(仅修改了 É,Caméras 中的 é 保持原样)

我正在使用以下方法,它仅从大写字母中删除变音符号,但重建的字符串看起来像这样 - Electronique Came?ras(é 丢失)。如何正确重建字符串?

谢谢

0 投票
2 回答
1555 浏览

objective-c - What is the form of unicode representation called?

I've been going around in circles on this problem where the JSON UTF-8 strings returned from a server contain unicode pairs like this:

\u00c3\u00bc

which is being rendered as two individual characters. However, It should be rendered as a single character. According to a table I found at this link, here are some more examples:

(Every case where I see this in my data would convert to an appropriate single character.)

Many of these apparently are 'aliases' of singlet forms like '\uxxxx', but I receive them this way as doublets. The raw data bytes show that this is actually how it is transmitted from the server.

(Once I have received them in UTF-8, there is no reason for me to keep them that way in local representation in memory.)

I don't know what to call this, so I'm having difficulty finding much information on it and I'm not able to communicate clearly on the subject. I would like to know why it's used and where I can find code that will convert it to something that my UIWebView can render correctly, but knowing what it's called is the point of my question.

My question then is what is this doublet or paired form called?

(If it's helpful, I am working in Objective-C and CocoaTouch.)

0 投票
1 回答
1778 浏览

c# - 为什么 string.Normalize 不根据上下文保持一致?

我有以下代码:

我在 64 位 Windows 7 上使用 Visual Studio 2010 .net4 构建此代码。

我在两个上下文中的单元测试项目(平台:任何 CPU)中运行它并检查以下内容chars

  • Visual Studio 单元测试:字符包含{ 231 }.
  • ReSharper:字符包含{ 231 }.
  • NCrunch:字符包含{ 99, 807 }.

msdn 文档中,我找不到任何表示不同行为的信息。

那么,为什么我会得到不同的行为呢?对我来说,NCrunch 的行为是预期的,但我希望其他人也是如此。

编辑: 我切换回 .Net 3.5 仍然有同样的问题。

0 投票
2 回答
941 浏览

.net - Levenshtein 距离和特殊字符

如Steve Hanov所述,我使用特里树实现了 Levenshtein 距离算法。但是,我在处理特殊字符时遇到了困难。例如,如果我计算 Großmann 和 Grossmann 之间的距离,我需要距离为零,因为 ß 和 ss 应该被认为是相等的。

什么是支持这些特殊情况的最佳解决方案(如果有)。

我最初的想法是在计算距离之前对所有字符串进行标准化。所以在 Großmann -> Grossman, österreich -> oesterreich, ... 但是,.NET 中似乎没有这样的功能?

0 投票
5 回答
17316 浏览

javascript - 比较 unicode 字符时,Javascript 字符串比较失败

我想比较 JavaScript 中两个相同的字符串,但相等运算符==返回 false。一个字符串包含一个特殊字符(例如 danish å)。

JavaScript 代码:

对我有用的解决方案 是 slevthan 指出的 unicode 规范化。

我分叉了我原来的 jsfiddle 以使用 slevthan 建议的规范化库制作一个版本。链接:http: //jsfiddle.net/GWZ8j/1/