请教各位,像"\t" "\n" 空格等这类常用分隔符会不会被用到某种汉字编码里面去?就是作为汉字的一个字节,那么用这些作为字段分隔就不安全?

Paradin 2011-01-19 10:38:58
在处理原始的日志,里面的字段用\t分开,含有url,用户输入的内容和浏览器编码千奇百怪,甚至发现decode后内容中可以有\n,不知道还会有哪些问题
...全文
620 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluejays 2011-01-19
  • 打赏
  • 举报
回复
刚查了一下,GB2312的两个字节都大于0xA0,所以我有这么个印象。
其他有些编码的第二个字节可能会用到普通ascii码的范围,但是第一个字节不会。
编码还是挺复杂的……
bluejays 2011-01-19
  • 打赏
  • 举报
回复
不会。汉字的编码都不会用到常见的ascii码。
每个字节好像都是大于127的,或者是都大于另一个什么值,反正是比一般的ascii码都要大
l2005 2011-01-19
  • 打赏
  • 举报
回复
\t \n 可以被用到汉字中,ansi直接表示,unicode高位加0, 看你日志怎么编码了
  • 打赏
  • 举报
回复
应该不会吧,一般的编码都回兼容ansi 0-127编码的
arong1234 2011-01-19
  • 打赏
  • 举报
回复
我觉得靠猜测没有什么意义,关键是看用户到底怎么输入的。如果日志decode后有疑惑,应该在用户侧直接写没有encode的日志,这更容易查
yanran_hill 2011-01-19
  • 打赏
  • 举报
回复
如果要作为分割符的话,那应该先把字符串转换成UNICODE然后再处理,这样不就没有问题了吗?
justkk 2011-01-19
  • 打赏
  • 举报
回复
|是有可能的
“和珅”的珅,第二个字节就是与|的ascii码值一样
lhy 2011-01-19
  • 打赏
  • 举报
回复
这几个应该都不会
dengsf 2011-01-19
  • 打赏
  • 举报
回复
不会,GBK的二字节编码,最高位都是 1,即>=0x80。
倒是要考虑 \t 是否会出现在字串中。
欣客 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bluejays 的回复:]
刚查了一下,GB2312的两个字节都大于0xA0,所以我有这么个印象。
其他有些编码的第二个字节可能会用到普通ascii码的范围,但是第一个字节不会。
编码还是挺复杂的……
[/Quote]

+ 1

64,683

社区成员

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

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