当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 9:29 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
如题,假设给你一个字符数组
char a[]="abc";
在它的编码中gb2312和utf-8都一样
,该如何判断它到底是gb2312还是utf-8哪????????????????????????


页首
 用户资料  
 
2 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 9:49 
头像

注册: 2006-10-19 8:43
帖子: 787
地址: 长江口
送出感谢: 1
接收感谢: 2
ascii字符在单字节编码和多字节编码中都是一样的,一个字节;在utf16中,用两个字节ascii码+0x00


页首
 用户资料  
 
3 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 9:52 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
不如看enca的源码


_________________
● 鸣学


页首
 用户资料  
 
4 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 13:51 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
引用:
在它的编码中gb2312和utf-8都一样

所以可能为gb,也可能为utf-8


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 15:20 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET,
不会吧,要是又汉字就不一样了是不是?


页首
 用户资料  
 
6 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 15:21 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
weihua2008 写道:
BigSnake.NET,
不会吧,要是又汉字就不一样了是不是?

问题是你这里没有汉字


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 15:45 

注册: 2006-09-11 22:47
帖子: 2841
送出感谢: 0 次
接收感谢: 4
weihua2008 写道:
如题,假设给你一个字符数组
char a[]="abc";
在它的编码中gb2312和utf-8都一样
,该如何判断它到底是gb2312还是utf-8哪????????????????????????


对任意一个字符而言,并没有编码格式的概念。同样的一个字母,在不同编码集里面代表不同的东西,当然也有可能恰好代表相同的东西。

编码集并不是文本本身的属性,而是观察者的角度,也就是说你用什么编码集来观察这段文本。——从程序的角度就是,你用什么软件去打开它。——编码识别大多通过非法字符进行识别,也就是说仅仅当我们判断具有非法的utf-8字符序列的时候,我们判断一个文本“不是utf-8”编码,但是我们永远无法判断一个文本“是utf-8编码”。——如果不包含任何非法字符,那么你就可以用任何编码去查看他:

例如“逍遥”如果使用BIG5码,但你还是可以使用GBK码查看这两个字,最后得到的是“殊换”。显然这两个词都是合法的,如果仅仅给你这个词,那么你无论从理论还是实际上都不可能知道原文的作者究竟是想表达“逍遥”还是“殊换“。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 16:06 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
我知道了,还有poet
你说的在windows下查看.odt的编辑器是什么来着???


页首
 用户资料  
 
9 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 16:06 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
openoffice


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 16:27 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET,
大蛇,我要发送文件的时候,要指明文件的类型(看是文件还是一般的文本消息),文件的名称
文件的路径(这个在发送文件夹时有可能有用),还有文件的内容
要定义成结构的话
struct tagContext
{
int nFileType;//数据类型
char strFileName[100];//文件名
char strDirName[256];//路径名
char strBuff[1024];//存放数据数组
int nstrLen;//数据长度
};
这样将整个结构体发送出去,显得发送数据非常浮肿,有没有好的打包方式阿
有人说就用一个数组char strContext[1024];
前几个字节表示文件类型,再有几个字节表示文件名,路径名,再到数据长度,最后是数据
后面的凡是我感觉不好把握。给选择别解释一下,哪种好,
主要还是,第二种方式的实现问题


页首
 用户资料  
 
11 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 16:59 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
weihua2008 写道:
BigSnake.NET,
大蛇,我要发送文件的时候,要指明文件的类型(看是文件还是一般的文本消息),文件的名称
文件的路径(这个在发送文件夹时有可能有用),还有文件的内容
要定义成结构的话
struct tagContext
{
int nFileType;//数据类型
char strFileName[100];//文件名
char strDirName[256];//路径名
char strBuff[1024];//存放数据数组
int nstrLen;//数据长度
};
这样将整个结构体发送出去,显得发送数据非常浮肿,有没有好的打包方式阿
有人说就用一个数组char strContext[1024];
前几个字节表示文件类型,再有几个字节表示文件名,路径名,再到数据长度,最后是数据
后面的凡是我感觉不好把握。给选择别解释一下,哪种好,
主要还是,第二种方式的实现问题


你先调用个什么东西对文件夹打包变成字节流..
然后发送这个字节流不就行了嘛..


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
12 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 18:51 

注册: 2006-09-11 22:47
帖子: 2841
送出感谢: 0 次
接收感谢: 4
weihua2008 写道:
我知道了,还有poet
你说的在windows下查看.odt的编辑器是什么来着???


http://download.openoffice.org/other.html


页首
 用户资料  
 
13 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 21:58 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET,
你说得不太清楚啊,不是应该说,我的理解有点差,
撒个先将文件夹打包啊?
烦你再说清楚点


页首
 用户资料  
 
14 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 22:00 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
poet,
你对我的发生文件的问题,在10楼提出的,有没有好的建议
不妨说说


页首
 用户资料  
 
15 楼 
 文章标题 : Re: linux如何判断一个字符的编码格式??????
帖子发表于 : 2009-02-12 23:25 

注册: 2006-09-11 22:47
帖子: 2841
送出感谢: 0 次
接收感谢: 4
weihua2008 写道:
BigSnake.NET,
这样将整个结构体发送出去,显得发送数据非常浮肿,有没有好的打包方式阿
有人说就用一个数组char strContext[1024];
前几个字节表示文件类型,再有几个字节表示文件名,路径名,再到数据长度,最后是数据
后面的凡是我感觉不好把握。给选择别解释一下,哪种好,
主要还是,第二种方式的实现问题


你这种需求最好不要用结构,用整体字节流比较好。因为4个字段的长度都是不确定的。另外先提醒你一下,这个1024不太够。光一个路径名就要1024,最好这里给4096。

至于其分隔方法,你正好练习一下字符串处理。一般这里用 '\0' 字符分隔就可以了。

其实这个不是好不好实现的问题,是你第一种方法根本不能满足要求,实际调试时会出很多问题。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译