需要从MS-Excel和MS-Access中的韩语单词中提取初始字符.当我使用Left("한글",1)时,它将返回第一个音节,即한,我需要的是初始角色,即ㅎ.有这个功能吗?或者至少是成语?
如果您知道如何从String中获取Unicode值,我可以从那里开始工作,但我相信我会重新发明轮子.(再次)
试着改写:你能将每个组合字符组合映射到一个代码点吗?
我是Unicode的新手,但在我看来,没有编码,规范化或表示,其中一个字符在Unicode的每种情况下都是一个代码点.它是否正确?
基本多语言平面也是如此吗?
unicode normalization utf-16 surrogate-pairs unicode-normalization
我一直在讨论这个问题,从服务器返回的JSON UTF-8字符串包含这样的unicode对:
\ u00c3\u00bc
它被渲染为两个单独的角色.但是,它应该呈现为单个字符.根据我在此链接中找到的表格,这里有一些例子:
0xc3,0xa0 agrave
0xc3,0xa1 aacute
0xc3,0xa2 acircumflex
0xc3,0xa3 atilde
0xc3,0xa4 adiaeresis
0xc3,0xa5 aring
0xc3,0xa6 ae
0xc3,0xa7 ccedilla
0xc3,0xa8 egrave
0xc3,0xa9 eacute
0xc3,0xaa ecircumflex
0xc3,0xab ediaeresis
0xc3,0xac igrave
0xc3,0xad iacute
0xc3,0xae icircumflex
0xc3,0xaf idiaeresis
0xc3,0xb0 eth
0xc3,0xb1 ntilde
0xc3,0xb2 ograve
0xc3,0xb3 oacute
Run Code Online (Sandbox Code Playgroud)
(我在数据中看到这种情况的每种情况都会转换为适当的单个字符.)
其中许多显然是像'\ uxxxx'这样的单线形式的"别名",但我以这种方式接收它们作为双重线.原始数据字节显示这实际上是从服务器传输的方式.
(一旦我以UTF-8收到它们,我没有理由将它们保留在内存中的本地表示中.)
我不知道该怎么称呼它,所以我很难找到很多关于它的信息,而且我无法就这个问题进行清楚的沟通.我想知道为什么它被使用,我在哪里可以找到将其转换为我的UIWebView可以正确呈现的内容的代码,但知道它的名称是我的问题.
我的问题是这个双重或配对形式叫什么?
(如果它有用,我在Objective-C和CocoaTouch中工作.)
unicode cocoa-touch objective-c normalization unicode-normalization
在我的应用程序中,我必须使用NFD Unicode系统规范化NSString.我怎样才能做到这一点?我需要转换用户输入的字符串作为规范化的字符串,我必须计算一个数字.谁能帮我?
我需要在unicode字符串上评估levenshtein编辑距离,这意味着需要对包含相同内容的两个字符串进行规范化,以避免偏向编辑距离.
以下是我为测试生成随机unicode字符串的方法:
def random_unicode(length=10):
ru = lambda: unichr(random.randint(0, 0x10ffff))
return ''.join([ru() for _ in xrange(length)])
Run Code Online (Sandbox Code Playgroud)
这是一个失败的简单测试用例:
import unicodedata
uni = random_unicode()
unicodedata.normalize(uni, 'NFD')
Run Code Online (Sandbox Code Playgroud)
这是错误:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我检查确保它uni确实是一个unicode对象:
u'\U00020d93\U000fb2e6\U0005709a\U000bc31e\U00080262\U00034f00\U00059941\U0002dd09\U00074f6d\U0009ef7a'
Run Code Online (Sandbox Code Playgroud)
有人可以开导我吗?
python unicode normalization unicode-normalization python-unicode
如果我将Unicode规范化表单C应用于字符串,字符串中的代码点数量是否会增加?
我正在开发一个C项目,需要生成"不区分大小写"的规范化形式的Unicode文本.我选择将规范化形式定义为首先转换为NFD规范化,然后应用Unicode案例折叠算法,最后将结果转换为NFC规范化形式NFC.
我依靠ICU的C API来实现其Unicode表示和实用功能,使用ICU unorm_normalize()和u_strFoldCase()函数实现我的方案相当简单.但是我的一个测试失败了,我不明白为什么.ICU似乎正在产生一种与我预期不同的NFC形式.
输入序列由以下BMP代码点组成:
U+0020, U+1EA5, U+0328, U+1EC4, U+031C
Run Code Online (Sandbox Code Playgroud)
通过调试器,我确定ICU和我同意案例折叠后的中间结果:
U+0020 U+0061 U+0328 U+0302 U+0301 U+0065 U+031C U+0302 U+0303
Run Code Online (Sandbox Code Playgroud)
特别要注意的是,早期转换为形成NFD将字符U + 031C移动到U + 1EC4分解的中间,根据所涉及字符的相对CCC编号.这是我试图测试的一部分.
现在好的部分:根据ICU,折叠字符序列的NFC标准化是
U+0020 U+0105 U+0302 U+0301 U+1ec5 U+031C
Run Code Online (Sandbox Code Playgroud)
而我认为它应该是
U+0020 U+0105 U+0302 U+0301 U+0065 U+031C U+0302 U+0303
Run Code Online (Sandbox Code Playgroud)
因为三个尾随组合字符已经按规范顺序排列,并且没有U + 0065和U + 031C的规范组合.
那么,有两个问题:
例如,对于字符"a",我想获取一个字符串(字符列表),例如"aàáâãäå???"(不确定示例列表是否完整...)(基本上是所有带有name的unicode字符"Latin Small Letter A with *")。
有没有通用的方法可以做到这一点?
我要求使用Python,但是如果答案更通用,那也很好,尽管在任何情况下我都希望Python代码片段。Python> = 3.5很好。但是我想您需要访问Unicode数据库,例如Python模块unicodedata,我比其他外部数据源更喜欢它。
我可以想象这样的解决方案:
def get_variations(char):
import unicodedata
name = unicodedata.name(char)
chars = char
for variation in ["WITH CEDILLA", "WITH MACRON", ...]:
try:
chars += unicodedata.lookup("%s %s" % (name, variation))
except KeyError:
pass
return chars
Run Code Online (Sandbox Code Playgroud) 如何使用正则表达式将Unicode数字下标或上标(例如?)替换为相应的数字(即2)?我当然可以单独替换它们,但那是十行代码......
我在Perl中实现这个,但这不应该真的重要.
我想在 C++ 中实现Unicode 规范化,特别是 NFKC。为此,我需要一些任何语言(最好是 C++)的参考源代码。
或者您可以建议我如何开始实施。
unicode ×10
objective-c ×2
python ×2
c++ ×1
cocoa-touch ×1
excel ×1
icu ×1
iphone ×1
ms-access ×1
nsstring ×1
perl ×1
python-3.x ×1
regex ×1
superscript ×1
utf ×1
utf-16 ×1
vba ×1