李锦俊(mybios)的blog

游戏开发 C++ Cocos2d-x OpenGL DirectX 数学 计算机图形学 SQL Server

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  86 Posts :: 0 Stories :: 370 Comments :: 0 Trackbacks

公告

QQ:30743734
EMain:mybios@qq.com

常用链接

留言簿(16)

我参与的团队

最新随笔

搜索

  •  

积分与排名

  • 积分 - 366548
  • 排名 - 67

最新评论

阅读排行榜

评论排行榜

CEGUI的String不是std::string或std::wstring,而是自己实现的一个字符串类,他的功能跟std的string很接近。
但是,他支持unicode,内部存储是使用utf32编码规范来存储unicode字符,也就是说 typedef  uint32 utf32; utf32*  d_buffer;用这个32位无符号整型的数组来保存unicode字符串。优点是显而易见的,就是世界上所有字符都可以包囊进去,毕竟是32位啊!但是,缺点也出来了,有两点:
第一、内存占用过多,一个字符就要占4个字节,也太浪费了点;
第二、调试不方便,由于VS2005的调试窗口只支持ansi和utf16的格式,所以,CEGUI的String在调试器中只能看到一堆数字数组,而看不到字符,这是很郁闷的,每次要查看都要翻到内存那里看,而且还一堆乱码,超级麻烦。

解决办法:修改String类,使用utf16来代替CEGUI的utf32。
优点:
解决了内存占用过多的问题,一个字符只要2个字节就可以了;
解决了调试问题,VS2005直接支持utf16的显示。
缺点:
可能不支持全世界的字符,因为utf16不能表示超过16位的字符,但是,对于大多数国家的字符来说,已经足够了,毕竟windows2000/xp也是基于utf16编码的。

然后,下面是修改后的字符串类:CEGUIString
posted on 2007-07-29 10:17 李锦俊(mybios) 阅读(4399) 评论(11)  编辑 收藏 引用 所属分类: C++

Feedback

# re: 关于CEGUI的String的调试问题 2007-07-29 12:20 pass86
What is CEGUI?  回复  更多评论
  

# re: 关于CEGUI的String的调试问题 2007-07-29 14:24 李锦俊
CEGUI,一个开源的GUI库,ogre使用这套界面库作GUI渲染  回复  更多评论
  

# re: 关于CEGUI的String的调试问题[未登录] 2007-07-29 18:14 随意
为国际化,必须有牺牲.  回复  更多评论
  

# re: 关于CEGUI的String的调试问题 2007-07-29 21:21 李锦俊
感觉上,utf16已经足够了啊。。
话虽如此,不过都没所谓了,反正做一个宏开关,debug版使用utf16,release版使用utf32就ok了,反正主要是为了方便调试。看不到字符串的内容确实是很恼火的事情  回复  更多评论
  

# re: 关于CEGUI的String的调试问题 2007-08-09 22:19 aGAric
现在大于0xffff的编码已经出现了吗? 再不行,用UTF8也可以解决这个问题  回复  更多评论
  

# re: 关于CEGUI的String的调试问题 2007-08-11 12:47 李锦俊
VS调试器好像不支持UTF8吧?  回复  更多评论
  

# re: 关于CEGUI的String的调试问题 2007-09-28 11:32 li
试了一下,提示找不着CEGUIBase.dll的入口点??  回复  更多评论
  

# re: 关于CEGUI的String的调试问题 2009-02-18 10:58 秒大刀
貌似不能说UTF-16就是16bit的,这里有描述http://zh.wikipedia.org/w/index.php?title=UTF-16&variant=zh-hans
UTF-x都是Unicode的表现形式,而Win下VS用的是Unicode,与这些表现形式是没有关系的
编码这块比较绕  回复  更多评论
  

# re: 关于CEGUI的String的调试问题 2009-02-18 11:44 秒大刀
http://www.unicode.org/versions/Unicode4.0.0/ch03.pdf
§3.10中的图标很明显的说明了这个问题  回复  更多评论
  

# re: 关于CEGUI的String的调试问题 2009-11-10 12:31 track
nb  回复  更多评论
  

# re: 关于CEGUI的String的调试问题 2010-05-19 16:23 HowardHilary
The <a href="http://www.4writers.net">online writing jobs </a> won’t puzzle out the problems, hence, tha’s real to get interesting information referring to this post.   回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理