ATJ2157&ATJ2127音乐按文件名拼音排序---标案是按内码进行排序

该博客介绍了如何在ATJ2157&ATJ2127平台上实现音乐文件按拼音排序。内容涉及到内码排序、Unicode与拼音对照表U2P.DAT的生成和使用,以及DEV-C++编写的生成代码。此外,还提到了UCA+CLDR排序标准作为更全面的解决方案。
摘要由CSDN通过智能技术生成

参考网站

各种字符对应表:http://www.kanji.zinbun.kyoto-u.ac.jp/~yasuoka/CJK.html
方法思路:https://blog.csdn.net/firehood_/article/details/7648625

ATJ2157&ATJ2127 排序是按照内码(汉字为GBK即GBK936)排序的

 GBK936是对GB2312编码的扩充,对汉字采用双字节编码。
 GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字

GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个同时,
GB2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符
GB2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。
• 01-09区为特殊符号。
• 16-55区为一级汉字,按拼音排序。
• 56-87区为二级汉字,按部首/笔画排序。
• 10-15区及88-94区则未有编码

按拼音排序

要达到这个要求,必须要获取相应的拼音进行对比,或者排好序的对应关系。
为了达到编码了统一性,首先把内码转换为unicode码,然后根据unicode码获取拼音,然后比较。这就要求有一个unicode与拼音的对比表(U2P.DAT)

unicode与拼音的对比表(U2P.DAT),需要打包到固件中

U2P.DAT是根据Uni2Pinyin.Z生成的
在这个http://www.kanji.zinbun.kyoto-u.ac.jp/~yasuoka/CJK.html网站上可以找到Uni2Pinyin.Z
在这里插入图片描述

U2P.DAT数据结构

每一个unicode占32个字符,汉字编码为A对应在文件中的位置为(A-0x4e00)*32
在这里插入图片描述

U2P.DAT生成代码是使用DEV-C++生成

程序的输入文件是U2P.txt
在这里插入图片描述
完整代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */


 int char_to_number(unsigned char *buffer)
{
   
	 int data;
//		printf("buffer[3] = %X\n",buffer[3]);
		if ((buffer[0] >= 0x30) && (buffer[0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个专研技术的小蜜蜂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值