返回信息流大家有没有遇到这样一个问题:
内核编程中,使用类似printf的字符串格式化函数,处理带中文的unicode字符串时,格式化之后的字符串里,中文都丢失了。
如一个unicode("我是")
sprintf(buf,"it is %ws",unicode("我是"))
结果buf就是 it is
这是一条镜像帖。来源:北邮人论坛 / soft-design / #27870同步于 2008/7/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
大家有没有遇到这样一个问题
flyingkisser
2008/7/7镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
什么内核?能支持wchar?
【 在 flyingkisser (齐天大猫) 的大作中提到: 】
: 大家有没有遇到这样一个问题:
: 内核编程中,使用类似printf的字符串格式化函数,处理带中文的unicode字符串时,格式化之后的字符串里,中文都丢失了。
: 如一个unicode("我是")
: ...................
试了,不行
【 在 rebirthatsix (茫犭者-算法盲) 的大作中提到: 】
: 猫哥,这个试了么
: swprintf("it is %0.2s ",unicode("我是"));
不是输出的问题,格式化以后,中文那部分以后,就直接清0了。
通过windbg双机调试直接看的内核中的内存。
【 在 jumpfish (跳鱼) 的大作中提到: 】
: 感觉如果是UNICODE的问题,可能输出有问题,但至少在buf里能看到
现在只能先转成ansi,再交给*printf*这类函数处理。
因为格式化的串是ansi的,
如果格式化的串是unicode,再加上要被格式化的也是unicode,估计就没有问题了。
反正,这个问题在ring3中并不存在。
【 在 flyingkisser (齐天大猫) 的大作中提到: 】
: 不是输出的问题,格式化以后,中文那部分以后,就直接清0了。
: 通过windbg双机调试直接看的内核中的内存。