标签: utf-32

我如何在C#中使用32位unicode字符?

也许我不需要32位字符串,但我需要代表32位字符

http://www.fileformat.info/info/unicode/char/1f4a9/index.htm 现在我抓住了symbola字体,当我粘贴它时(在网址或任何文本区域)可以看到该字符,所以我知道我有它的字体支持.

但是我如何在我的C#/ .NET应用程序中支持它?

- 编辑 - 我会添加一些东西.当我在.NET winform应用程序中粘贴所述字符时,我没有正确地看到该字符.当它粘贴到Firefox中时,我确实看到了它.如何在winform应用程序中正确查看字符?

.net c# unicode utf-32

2
推荐指数
1
解决办法
4578
查看次数

将UTF-8转换为UTF-32,预先计算每个中的"字符"数

我有一个工作算法将UTF-8字符串转换为UTF-32字符串,但是,我必须提前为我的UTF-32字符串分配所有空间.有没有办法知道UTF-32中有多少字符会占用UTF-8字符串.

例如,UTF-8字符串"¥0"是3个字符,一旦转换为UTF-32,则是2个无符号字符.有没有办法知道转换之前我需要的UTF-32'字符数'?或者我将不得不重新编写算法?

c++ utf-8 string-conversion utf-32

2
推荐指数
1
解决办法
2222
查看次数

utf-32优势解释

在在线diveintopython3书中,它说utf-32和utf-16的优点是

UTF-32 是一种简单的编码;它接受每个 Unicode 字符(一个 4 字节的数字)并用相同的数字表示字符。这有一些优点,最重要的是您可以在恒定时间内找到字符串的第 N 个字符,因为第 N 个字符从第 4×N 个字节开始

有人可以解释一下吗?如果可能的话,举个例子..我不确定我是否完全理解它

unicode character-encoding utf-32

2
推荐指数
1
解决办法
1177
查看次数

怎样才能有固定宽度的Unicode编码?

在读到Unicode时,我听过很多次,UTF-32是固定宽度编码.

将固定宽度编码表示"将源符号映射到一定数量的位的代码",并且假设所讨论的源符号是Unicode代码点,这一切都是有意义的.但是,如果您认为源符号的基础语言是字形,那么事情会变得复杂得多.

所以我的问题是,在字面意义上,UTF-32真的是一个固定长度的编码?如果没有,那么在这个意义上是否有可能的固定长度编码?

unicode encoding character-encoding utf-32

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

C#:读取字符串的第一个字符,当char的unicode值> 65535时

我有一个C#方法需要检索字符串的第一个字符,并查看它是否存在于包含特定unicode字符的哈希集中(所有从右到左的字符).

所以我在做

var c = str[0];
Run Code Online (Sandbox Code Playgroud)

然后检查hashset.

问题是这个代码不适用于第一个char的代码点大于65535的字符串.

我实际创建了一个循环,遍历0到70,000之间的所有数字(最高RTL代码点大约68,000,所以我向上舍入),我从数字创建一个字节数组,并使用

Encoding.UTF32.GetString(intValue);
Run Code Online (Sandbox Code Playgroud)

用这个字符创建一个字符串.然后我将它传递给在HashSet中搜索的方法,并且该方法失败,因为它何时获得

str[0]
Run Code Online (Sandbox Code Playgroud)

这个价值永远不会是应有的.

我究竟做错了什么?

c# unicode utf-16 utf-32

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

UTF-32 编码的单个字符的长度

维基百科告诉我 UTF-32 编码使用的位数是 32 位,那么为什么这给了我 64 位的长度呢?

>>> Bits(bytes = 'a'.encode('utf-32')).bin
'1111111111111110000000000000000001100001000000000000000000000000'
>>> len(Bits(bytes = 'a'.encode('utf-32')).bin)
64
Run Code Online (Sandbox Code Playgroud)

UTF-32 应该是一个 4 字节的定长字符集,根据我的理解,每个字符都有定长表示在 32 位内,然而,上面代码的输出是 64。这是怎么回事?

python unicode python-3.x utf-32

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