首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么相同的Unicode字符具有不同的整数值,反之亦然?

为什么相同的Unicode字符具有不同的整数值,反之亦然?
EN

Stack Overflow用户
提问于 2010-12-23 08:28:27
回答 2查看 498关注 0票数 2

我正在尝试读取一个包含Unicode字符串的xcode文件,characters.My代码将遍历字符串,一个接一个地提取字符,并打印其相应的INT值。下面是读取其中一小部分内容的代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NSString *theText = @"˘¸";  
for(int i=0; i<[theText length]; i++) {  
        int k= 249+(i*3);  
        NSLog(@"%c and %C >> UNICODE DEC-VAL >> %d",[theText characterAtIndex:i],[theText characterAtIndex:i],[theText characterAtIndex:i]);  
        NSLog(@"%c and %C >> UNICODE DEC-VAL >> %d",k,k,k);  
}

它的结果是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 ÿ and ˘ >> UNICODE DEC-VAL >> 728  
 ˘ and ù >> UNICODE DEC-VAL >> 249  
 ∏ and ¸ >> UNICODE DEC-VAL >> 184  
 ¸ and ü >> UNICODE DEC-VAL >> 252

很明显,由于相同的整数值字符根据格式说明符的不同而不同,并且对于相同的unicode字符,它们的整数值也不同,这显然是有歧义的。我很好奇,为什么会这样呢?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2010-12-23 13:16:10

%c格式说明符需要字节(char)值。您传递的是较大的整数,因此会导致未定义的行为。除此之外,看起来您使用的是一些传统的8位代码页区域设置,而不是UTF-8,因此8位字节具有与Unicode不匹配的字符标识。简而言之,你有很多东西坏了。

票数 3
EN

Stack Overflow用户

发布于 2010-12-23 08:39:41

%c是字符,%C是unicode字符。我猜前面使用了一些8位编码,我猜大于255的值被256取模,你总是得到一个8位字符。unicode字符始终打印所需的字符值。

另请注意,存在具有相同外观的不同unicode字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4516999

复制
相关文章
剑指offer:数值的整次数方
本来是打算次条每天更新面试题和算法刷题的,加上头条一共要三篇文章,实在更不来,而且两篇都看的人也不多,所以我就算法刷题和面试题论着更新,更新的时候多更新几道。
帅地
2019/03/11
5010
相同的时间,不同的人生
在规定的时间内,一个人目标的达成情况(创造的价值),我们称之为效率。如此可见效率与时间是密切相关的,提高效率首先要做的就是提高我们的时间利用率。
keinYe
2020/05/25
1.2K0
LeetCode 1663. 具有给定数值的最小字符串(贪心)
小写字符 的 数值 是它在字母表中的位置(从 1 开始),因此 a 的数值为 1 ,b 的数值为 2 ,c 的数值为 3 ,以此类推。
Michael阿明
2021/02/19
6720
consul注册相同服务,相同程序,相同IP,不同端口来负载的问题
由于今天发现运维代码未正常发布。想要自己手动发布。发现原有服务名mos-x3-gls-service只有1个node启动,为了保障发布时原有服务不中断我需要再注册1个node,于是我简单修改了原有springboot端口9112为9113,启动后发现9113的节点正常注册,但是原来9112端口的节点服务没有了,搞了个寂寞。原因是如果在Spring Cloud Consul中使用相同的节点id进行注册,那么Consul将会将它们视为同一个节点,并将它们注册为同一个节点。老了,大意了。于是我把注册consul的节点id设置为服务名称+进程id即可解决。
高久峰
2023/06/17
5180
PyTorch入门视频笔记-创建数值相同的张量
创建元素值为全 0 或全 1 的张量是非常常见的初始化手段,通过 torch.zeros() 和 torch.ones() 函数即可创建任意形状,且元素值全为 0 或全为 1 的张量。
触摸壹缕阳光
2020/11/20
1.5K0
PyTorch入门视频笔记-创建数值相同的张量
Simulator 和 Emulator 的相同和不同;
在看模拟器的时候,出现了关于Simulator和Emulator两种词汇;都可以翻译为模拟器;但在调研游戏模拟器的时候,多为Emulator; 两者词汇的含义和应用场景有什么异同呢?
西湖醋鱼
2021/02/23
2K0
【C 语言】内存四区原理 ( 常量区示例 | 不同函数返回的相同字符串的指针地址相同 )
将 字符串常量 赋值给指针时 , 首先去 全局变量区 的 常量区 查询该 字符串常量是否存在 ,
韩曙亮
2023/03/29
3.7K0
【C 语言】内存四区原理 ( 常量区示例 | 不同函数返回的相同字符串的指针地址相同 )
表示数值的字符串
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
名字是乱打的
2022/05/13
6310
表示数值的字符串
Word反查字符的unicode码
最近写字符处理的相关程序,需要和字符编码打交道,Windows自带的字符映射表只能通过unicode码查找字符,但是测试时通常要通过字符查找其unicode码,使用起来很不方便。
极客中心
2021/01/21
1.5K0
Word反查字符的unicode码
Unicode 字符串
引号前小写的"u"表示这里创建的是一个 Unicode 字符串。如果你想加入一个特殊字符,可以使用 Python 的 Unicode-Escape 编码。如下例所示:
用户8442333
2021/05/27
1K0
[剑指offer] 表示数值的字符串
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100″,”5e2″,”-123″,”3.1416″和”-1E-16″都表示数值。 但是”12e”,”1a3.14″,”1.2.3″,”+-5″和”12e+4.3″都不是。
尾尾部落
2018/09/04
8010
Unicode不可见字符
不可见字符”\u200b”为 Unicode Character ‘ZERO WIDTH SPACE’ (U+200B),可用于内容标识,不占位数。
周小董
2019/03/25
5.6K0
Unicode不可见字符
策略模式:处理不同策略具有不同参数的情况
策略模式确实在处理不同策略需要不同参数的情况下会显得有些复杂。然而,这并不意味着策略模式不能在这种情况下使用。有几种可能的解决方案:
运维开发王义杰
2023/08/16
6710
策略模式:处理不同策略具有不同参数的情况
表示数值的字符串_53
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
名字是乱打的
2021/12/23
5980
unicode字符串解析
在http接口接收时,很多接口提供方都喜欢把汉字通过unicode的方式传过来,而数字和字母保持不变,就像这样。
逝兮诚
2019/10/30
1.4K0
字符编码ascii、unicode、ut
计算机是美国人发明和最早使用的,他们为了解决计算机处理字符串的问题,就将数字字母和一些常用的符号做成了一套编码,这个编码就是ASIIC码。ASIIC码包括数字大小写字母和常用符号,一共128个,1字节(byte)=8bit,8bit能表示的最大数是256,所以ASIIC编码中一个字符的大小就是1个字节
py3study
2020/01/19
9430
Q1663 具有给定数值的最小字符串(Smallest String With A Given Numeric Value)
  leetcode 中等难度中比较简单的一个,题目描述点击这里。读完描述可将本题精简为如下内容:
用户2038589
2022/05/11
3030
表示数值的字符串——53
这种题目转换型,没有啥比较好的思路,我一般直接取巧的做了 抛异常 public boolean isNumeric(String str) { try { double x = Double.parseDouble(str); return true; }catch (NumberFormatException exception){ return false; } }
名字是乱打的
2021/12/23
6380
表示数值的字符串——53
不同语言的程序员有着这些相同的生活!
程序员的生活总是有跟多槽点和笑点 但是还是一如既然的笑着生活着 今天一起来看看 程序员的那些事
老九君
2018/12/29
8400
不同语言的程序员有着这些相同的生活!
点击加载更多

相似问题

相同的unicode字符在不同的IDE中具有不同的行为

20

为什么这些相同的Unicode字符串具有不同的序列化形式?

116

不同的Unicode字符串编码相同

10

相同字符串的不同Unicode值

16

如何比较具有不同字节但值相同的Unicode字符串?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文