从报文中解析出字符串,能否知道是编码

big_world 2011-04-28 10:32:47
从报文中解析出字符串,能否根据字符串的字节判断是什么编码
当前我遇到的情况是,网元报的报文,是中文字符串,有的是gb2312,有的是utf-8编码,还有可能是其他编码。

能否根据字符串中字节的特征,判断出什么编码,这样好转换成统一的编码。


...全文
262 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
big_world 2011-05-01
  • 打赏
  • 举报
回复
说的对,在做架构时候一定要考虑本地化,我们产品就是典型的没考虑本地化,造成了很多问题
[Quote=引用 4 楼 ilysony 的回复:]

即使能判断出来,也会浪费很多cpu时间。

最好让服务器那边能在发送字符串之前,先把字符串编码类型发过来。

这样就根本不需要把时间花在判断上了。
[/Quote]
xmu_才盛 2011-05-01
  • 打赏
  • 举报
回复
所以楼主 如果是 自己写的客户端和服务器 ,那么 通信时 一定要告知 编码格式。。
无论是提前告知, 还是 在 数据包中某一位中定义, 都行。。。


如果是你想解析截获的数据包, 并且译码, 那么 就得分析 可能的标志了。。
李亚超 2011-04-29
  • 打赏
  • 举报
回复
可以的,不过要根据编码范围判断,注意:在GBK的范围内,还有藏文的编码..........
big_world 2011-04-29
  • 打赏
  • 举报
回复
没人知道吗?
xmu_才盛 2011-04-29
  • 打赏
  • 举报
回复
应该有编码特征值的。
Sou2012 2011-04-29
  • 打赏
  • 举报
回复
即使能判断出来,也会浪费很多cpu时间。

最好让服务器那边能在发送字符串之前,先把字符串编码类型发过来。

这样就根本不需要把时间花在判断上了。
yfk 2011-04-29
  • 打赏
  • 举报
回复
可以区分的,主要是根据不同编码方式的特点

GB2312 第一字节:0xB0-0xF7(176-247) 第二字节0xA0-0xFE(160-254)
utf8 的区间 1110**** 10****** 10******,并且都是三个字节的。

利用上述特征,基本可以区分,会有极小的误差率。

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧