surrogate-pairs

    3热度

    1回答

    由于历史原因,Cocoa的Unicode实现是16位的:它通过“代理对”处理高于0xFFFF的Unicode字符。这意味着下面的代码是行不通的: NSString myString = @""; uint32_t codepoint = [myString characterAtIndex:0]; printf("%04x\n", codepoint); // incorrectly prin

    13热度

    3回答

    考虑在IPython的以下对话: In [1]: s = u'華袞與緼同歸' In [2]: len(s) Out[2]: 8 正确的输出应该是7,但由于这七个中国文字的第五具有较高的Unicode码点,它由UTF-8中的“代理对”表示,而不仅仅是一个简单的代码点,因此Python认为它是两个字符而不是一个。 即使我使用unicodedata,它正确地返回代理对作为单个码点(\U0002

    -1热度

    1回答

    我有一个代理对,下面的例子: \ ud83d \ ude04 我想知道如何得到“1F604” 任何样本代码的相应值的值? 任何帮助将是可观的?

    1热度

    1回答

    我正在寻找一种有效的方法来获取JavaScript字符串并返回发生在该字符串中的所有scripts。 必须正确处理包括需要代理对的“星”平面/非BMP字符的完整UTF-16。这可能是主要问题,因为JavaScript不是UTF-16。 它只需要处理代码点,因此不需要复杂脚本或字形集群的花哨意识。 (这将是明显的一些你啦。) 例子: stringToIso15924("παν語"); 将返回类似

    0热度

    1回答

    我们已经编写了一个应用程序,它将打开Microsoft Word文档,读取里面的所有文本,然后将该数据发送到外部系统进行处理。这在过去运行良好,但由于我们已经接受了Unicode,所以我们在阅读Word文档时遇到了一些问题。 我们看到的问题是我们无法显示占用多个代码单元的任何字符,例如(代理对)或ā̈(字形集群)。当我们试图展示时,我们得到两个??,并且用??,我们得到组成这个字形的每个单独的角色

    4热度

    1回答

    我有一个java.lang.CharSequence的实例。我需要确定此实例是否为Unicode scalar values(即,实例是否采用UTF-16编码形式)的序列。尽管有java.lang.String的保证,但Java字符串不一定采用UTF-16编码形式(至少不是根据最新的Unicode specification,当前是6.2),因为它可能包含独立的surrogate code uni

    9热度

    2回答

    将JavaScript字符串拆分为“字符”可以轻松完成,但如果您关心Unicode(并且您应该关心Unicode),则会出现问题。 JavaScript本身将字符视为16位实体(UCS-2 or UTF-16),但这不允许BMP (Basic Multilingual Plane)之外的Unicode字符。 要处理BMP以外的Unicode字符,JavaScript必须考虑到“surrogate

    0热度

    1回答

    我的问题涉及到数据库(特别是SQL Server):在官方指南中提到,当使用“NVARCHAR/NCHAR”时,使用“每个字符2字节的存储空间”和“如果需要代理对,一个角色将需要4个字节的存储空间。“当需要代理对时,如何使用4字节?那么“需求”如何与SQL Server进行交流,它将如何知道?我只是不确定这将如何解决 - 当我编程时,我会定义一些东西为UTF-8,16或32.看起来SQL Serv

    8热度

    1回答

    Python3将unicode行为更改为拒绝代理对,而不是python2。 有一个问题here 但它不提供有关如何在python2还是怎么做代孕逃生删除代理对一个解决方案。 Python3例如: >>> a = b'\xed\xa0\xbd\xe4\xbd\xa0\xe5\xa5\xbd' >>> a.decode('utf-8', 'surrogateescape') '\udced\udc

    0热度

    1回答

    下面的代码没有正确地将输入数据转换为XML。我这么认为是因为我不希望变压器生成输出与非有效的xml字符(我在谈论&)。 下面是代码: package com.example.test.formatter; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parse