中文字符串排序解决方案
来源:互联网 发布:常州地球人软件 编辑:程序博客网 时间:2024/06/05 03:35
此文主要介绍采用UTF-8编码格式编程,对字符串进行排序。
GBK编码字符和汉语拼音顺序是一致的,可以利用将字符串编码转为GBK编码格式的方式来进行排序!
首先,我们应该了解一下GBK编码的相关知识。
GBK编码所有字符包括在a1~a9中a1~fe的部分及a8,a9中40~a0的部分,包括标点符号、数学符号、数字序号、全角数字字母、日文平假名、片假名、希腊字母、俄文字母、图形符号、制表符、拼音、注音符号等。
一下部分汉字:
GBK/2: GB2312 汉字
B0 0 1 2 3 4 5 6 7 8 9 A B C D E F
A 啊 阿 埃 挨 哎 唉 哀 皑 癌 蔼 矮 艾 碍 爱 隘
B 鞍 氨 安 俺 按 暗 岸 胺 案 肮 昂 盎 凹 敖 熬 翱
C 袄 傲 奥 懊 澳 芭 捌 扒 叭 吧 笆 八 疤 巴 拔 跋
D 靶 把 耙 坝 霸 罢 爸 白 柏 百 摆 佰 败 拜 稗 斑
E 班 搬 扳 般 颁 板 版 扮 拌 伴 瓣 半 办 绊 邦 帮
F 梆 榜 膀 绑 棒 磅 蚌 镑 傍 谤 苞 胞 包 褒 剥
B1 0 1 2 3 4 5 6 7 8 9 A B C D E F
A 薄 雹 保 堡 饱 宝 抱 报 暴 豹 鲍 爆 杯 碑 悲
B 卑 北 辈 背 贝 钡 倍 狈 备 惫 焙 被 奔 苯 本 笨
C 崩 绷 甭 泵 蹦 迸 逼 鼻 比 鄙 笔 彼 碧 蓖 蔽 毕
D 毙 毖 币 庇 痹 闭 敝 弊 必 辟 壁 臂 避 陛 鞭 边
E 编 贬 扁 便 变 卞 辨 辩 辫 遍 标 彪 膘 表 鳖 憋
F 别 瘪 彬 斌 濒 滨 宾 摈 兵 冰 柄 丙 秉 饼 炳
详细参考链接:点击打开链接
由上可知,GBK编码字符和汉语拼音顺序是一致的,因此,可以利用将字符串编码转为GBK编码格式的方式来进行排序。
附上转码代码:
std::string UTF8ToGBK(const std::string& strUTF8) { int len = MultiByteToWideChar(CP_UTF8, 0, strUTF8.c_str(), -1, NULL, 0); unsigned short * wszGBK = new unsigned short[len + 1]; memset(wszGBK, 0, len * 2 + 2); MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)(strUTF8.c_str()), -1, wszGBK, len); len = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL); char *szGBK = new char[len + 1]; memset(szGBK, 0, len + 1); WideCharToMultiByte(CP_ACP,0, wszGBK, -1, szGBK, len, NULL, NULL); std::string strTemp(szGBK); delete[]szGBK; delete[]wszGBK; return strTemp; }
- 中文字符串排序解决方案
- 中文字符串乱码解决方案
- QT 中文字符串排序
- 关于中文字符串乱码解决方案
- QT meeGo 中文字符串排序
- Java字符串排序中文+数字
- java中的中文字符串排序
- 确定中文字符串的相似度解决方案
- url传递中文字符串的解决方案
- Gsoap回传字符串中文乱码解决方案
- java中文字符串按拼音排序 代码
- java中文字符串按拼音排序代码
- Java对中文字符串排序处理
- Java提高:中文字符串排序的瑕疵
- java中中文字符串按首字母排序
- Java字符串按照中文拼音排序
- EXT.js对中文字符串的排序
- 带中文的字符串排序(按拼音字母排序)
- 使用expdp在远程导出数据(键人岐)
- 20.JDK1.5新特性(一)【静态导入】【可变参数】【自动装箱拆箱】【增强for循环】
- rsync 无密码 传输
- 触发器做审计、系统触发器简单介绍
- Mingw下编译PJSIP时报错undefined reference to `pjmedia_format_init_audio'问题解决
- 中文字符串排序解决方案
- iOS - 制作真机静态库:
- 程序员的成长历程,30岁以内的程序员请勿好大喜功!
- uva 11300 Spreading the wealth
- mipi介绍
- Xamarin Mono For Android 4.6.00049
- 一个简单的makefile示例及其注释
- linux下DMA API
- qeephp数据库关联操作