加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 为UTF-8或UTF-16使用设计应用程序

发布时间:2020-12-16 09:39:59 所属栏目:百科 来源:网络整理
导读:我正在开发一个主要由英语和西班牙语读者使用的应用程序.但是,将来我希望能够支持更多扩展语言,例如日语.在考虑该程序的设计时,我已经在UTF-8与UTF-16与多字节中碰壁.我想编译我的程序以支持UTF-8或UTF-16(对于使用中文等语言的情况).为了实现这一点,我想我
我正在开发一个主要由英语和西班牙语读者使用的应用程序.但是,将来我希望能够支持更多扩展语言,例如日语.在考虑该程序的设计时,我已经在UTF-8与UTF-16与多字节中碰壁.我想编译我的程序以支持UTF-8或UTF-16(对于使用中文等语言的情况).为了实现这一点,我想我应该有类似的东西

#if _UTF8
typedef char char_type;
#elif _UTF16
typedef unsigned short char_type;
#else
#error
#endif

这样,将来当我使用UTF-16时,我可以切换#define(当然,对于诸如sprintf之类的东西,它具有相同类型的#if /#endif).我有自己的自定义字符串类型,所以也可以使用这种情况.

使用上面提到的场景替换每次只使用“char”与我的“char_type”的用法,会被视为“坏主意”吗?如果是这样,为什么它被认为是一个坏主意,我怎么能实现我上面提到的?

我想使用其中一个的原因是由于内存效率.如果我不使用它,我宁愿不要一直使用UTF-16.

解决方法

UTF-8可以表示每个Unicode字符.如果您的应用程序正确支持UTF-8,那么您就可以使用任何语言.

请注意,如果您正在编写Windows应用程序,则Windows的本机控件没有用于在其中设置UTF-8文本的API.但是,很容易制作一个内部使用UTF-8的应用程序,并转换为UTF-8 – >在Windows中设置文本时UTF-16,并转换UTF-16 – >从Windows获取文本时的UTF-8.我已经完成了它,它工作得很棒,并且比编写WCHAR应用程序更好.转换UTF-8< - >是微不足道的. 16; Windows有它的API,或者您可以在自己的代码中找到一个简单的(单页)函数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读