社区
C语言
帖子详情
字符集与字节数组的问题
burningbloodgg
2012-07-18 02:05:10
我是做java的,这种偏底层的问题感觉来这里问好点。不同的字符集编码(GBK,UTF-8)下,char a = ‘中’对应的(int)a的值是一样的,照理说不同编码对应的值应该不同啊。
如果是字符串,"中国人",不同编码下对应的字节数组是不一样的。这个可以理解。为什么单独的字符对应的值会一样啊。
...全文
105
7
打赏
收藏
字符集与字节数组的问题
我是做java的,这种偏底层的问题感觉来这里问好点。不同的字符集编码(GBK,UTF-8)下,char a = ‘中’对应的(int)a的值是一样的,照理说不同编码对应的值应该不同啊。 如果是字符串,"中国人",不同编码下对应的字节数组是不一样的。这个可以理解。为什么单独的字符对应的值会一样啊。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
闲谈共视
2012-07-19
打赏
举报
回复
所有的单字符的字节的个数是一样的!!!
其中的“中”和其他的一切的单字和单字符的意义一样的,再说“中国人”系统默认的是字节而不是字符,不是一个概念的问题!!!
burningbloodgg
2012-07-19
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
首先是由于你的环境的原因吧,因为Java是全UNICODE环境的.
在VC环境中, 把环境设置成多字符集和UNICODE字符集时,对于同一个"中",编码肯定是不同的.
我想Java中应该也是可以表现出来的, 只是可能你没用对方法. 具体怎么用法,静待懂的人来
[/Quote]
说的不错,就是这个意思。
burningbloodgg
2012-07-19
打赏
举报
回复
自己解决了,之所以不同编码下char的值一样,是因为这是基本类型,java内核都是用unicode编码。
赵4老师
2012-07-18
打赏
举报
回复
VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
提醒:
“学习用汇编语言写程序”
和
“VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)”
不是一回事!
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
赵4老师
2012-07-18
打赏
举报
回复
对电脑而言只有二进制字节,对人脑才有字符、字符串、简体汉字、繁体汉字、日文、阿拉伯文、各种编码、……
推荐使用WinHex软件查看文件或内存中的原始字节内容。
xiaohuh421
2012-07-18
打赏
举报
回复
首先是由于你的环境的原因吧,因为Java是全UNICODE环境的.
在VC环境中, 把环境设置成多字符集和UNICODE字符集时,对于同一个"中",编码肯定是不同的.
我想Java中应该也是可以表现出来的, 只是可能你没用对方法. 具体怎么用法,静待懂的人来
夏天__
2012-07-18
打赏
举报
回复
不懂,学习。
VC使用Cmarkup生成、解析xml资料
【分享一下】 里面内容很多。。 觉得好就下吧 Cmarkup是依据EDOM的,这是这个简单XML分析的关键。EDOM是操作XML元素、属性和数据的简明方法集。当你不需要复杂的XML特性时,它避免你读大量的DOM和SAX文档。 如果你希望使用微软的MSXML,CMarkup工程中CmarkupMSXML类全面的演示了通过EDOM来使用MSXML,并且它是以C++ COM语法开始。 下面列出了CMarkup的特征: 独立:不需要任何外部的XML组件。 小:编译到你的工程只是很小的一个类,并且对于文档只维持了一个字符串,以及一个总计小于字符串内存大小的索引
数组
。 快:分析器在相当快的建立索引
数组
。 简单:EDOM方法使创建、导航和修改XML无比的简单。 MSXML:CMarkupMSXML类用EDOM方法包装了微软的XML服务。MSXML编译选项用来演示这个类。 UNICODE(统一字符编码标准):对于WindowsNT和WindowsCE平台能够被编译成UNICODE,在WindowsNT UNICODE下,XML文档是流到UTF-8文件中,但是内部用宽字符。 UTF-8:对于UTF-8文件,这接受和返回UTF-8字符串(确保_MBCS没有被定义) MBCS:对于双
字节
数据(定义_MBCS),它不与UTF-8兼容. STL:CMarkupSTL类完全没有使用MFC,它的演示要使用STL编译选项。
学习-Java字符串之字符串、字符
数组
与
字节
数组
间的使用之单词重新排序
使用 String 类的构造方法 String(byte[] b) 可把
字节
数组
转为字符串;使用 String 类的构造方法 String(char[] b) 可把字符
数组
转为字符串。使用字符串 String 类提供的 toCharArray() 方法即可把字符串转为字符
数组
。使用字符串 String 类提供的 getBytes() 方法即可把字符串转为
字节
数组
。平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。本关任务:对给定单词重新排序(按照组成单词的字母升序排序)。
php字符串转byte
数组
,PHP中UTF-8字符串的
字节
数组
?
如何将
字节
数组
转换为UTF-8字符串?我需要这个,因为我从二进制格式中提取.解决方法:字符串只不过是一个
字节
数组
.因此,UTF-8字符串与
字节
数组
完全相同,除此之外您还知道
字节
数组
所代表的内容.因此,您的输入
字节
数组
还需要一个附加信息:
字符集
(字符编码).如果您知道输入
字符集
,则可以将
字节
数组
转换为另一个表示UTF-8字符串的
字节
数组
.PHP本身不知道
字符集
(字符编码).所以字符串实际上只不过是一...
C# 字符串与
字节
数组
相互转换
总结归纳:如果直接从System.String类中找到方法进行字符串和
字节
数组
之间的转换,是不太可能的。为了使其之间进行转换,需要借助另外一个类型:System.Text.Encoding。这个类型提供了将C#字符串转换成
字节
数组
的方法,也提供了将C#
字节
数组
转换成字符串。System.Text.Encoding类型的默认构造函数不太可用,不过该类型提供了几种默认的静态属性。如下: 1 //...
【Java基础】字符串与
字节
数组
相互转换
字符串转
字节
数组
(编码) 方法 描述 getBytes() 使用系统的默认
字符集
将字符串编码为 byte 序列,并将结果存储到一个新的 byte
数组
中 getBytes(String charsetName) 使用指定的
字符集
将字符串编码为 byte 序列,并将结果存储到一个新的 byte
数组
中 getBytes(Charset charSet) 使用指定的java.n...
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章