iOS CFStringTransform和Đ

Jon*_*iez 2 unicode objective-c nsstring ios6

我正在开发一个iOS应用程序,我必须列出并对人名进行排序.我有一些特殊性质的问题.

我需要在/sf/answers/1060837641/上对Martin R回答进行一些澄清

您可以使用CoreFoundation CFStringTransform函数,该函数几乎可以完成列表中的所有转换.只有"đ"和"Đ"必须单独处理:

为什么这封信?这是从哪里来的?我在哪里可以找到文档?

非常感谢.

Mar*_*n R 6

我不是百分百肯定,但我认为可以从Unicode数据库http://www.unicode.org/Public/6.2.0/ucd/UnicodeData.txt中看到 .

例如,"à"的条目是

00E0;LATIN SMALL LETTER A WITH GRAVE;Ll;0;L;0061 0300;;;;N;LATIN SMALL LETTER A GRAVE;;00C0;;00C0

其中字段#6是"分解映射"为"a"+ U + 0300(COMBINING GRAVE ACCENT),因此

CFStringTransform(..., kCFStringTransformStripCombiningMarks, ...)
Run Code Online (Sandbox Code Playgroud)

将"à"转换为"a".

"Đ"和"đ"的条目是

0110;LATIN CAPITAL LETTER D WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D BAR;;;0111;
0111;LATIN SMALL LETTER D WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER D BAR;;0110;;0110

其中字段#6为空,因此这些字符没有分解为"基本字符"和"组合标记".

所以问题仍然存在:哪个标准确定"đ/Đ"的"标准化形式"是"d/D"?