解决的问题实际上是: 输入一个汉语拼音,从数据库或xml文件里查询出对应的拼音开头的汉字
以下为解决问题需要的资源地址:
汉字和ascii码的关系(汉字码也叫内码是ascii码的扩展)
参考url地址: http://tech.ccw.com.cn/article/199466.htm
计算机中汉字是如何表示的(即汉字表示的基础知识)
http://www.cbi.pku.edu.cn/chinese/documents/csdoc/basic/
java利用ascii码表,把汉字转成拼音(完整版) ,即 java 代码示例:
http://blog.lequ8.cn/louis/2006/6/27/
以上三个网址:一步步看看,就可以解决:
给个“拼音或字母”,就可以从数据库里查询到相对应的 “汉字”。
网上资源提供了一个“利用ascii码表,把汉字转成拼音”的源代码,如下:
java利用ascii码表,把汉字转成拼音(完整版)
由于网上的api只能处理常见的汉字对于有些汉字转不了,或者不太准确,本人利用输入法的码表制作了个java的API
该API制作过程种碰到了"exceeding the 65535 bytes limit" java中每个函数不能多余65535个字节的限制,码表的初始化过程分了很多个函数来解决码表的初始化过程。代码部分如下:
完整代码下载:http://www.easyea.com/UserFiles/0/0/0/6/File/CnToSpell.zip
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Set;
import java.util.Date;
/**
*
* 汉字转化为全拼,码表利用输入法的码表导出,汉字信息非常全,平时见到的汉字
* 转拼音的API只能处理几千个一级汉字,很多字都没有法查到,尤其是我自己的姓
* 都查不到所以只好自己做一个汉字转拼音的API,该API除可以处理99%以上的汉字,
* 而且可以返回多音字的读音
*
* JDK版本: 1.4
*/
public class CnToSpell {
private static LinkedHashMap spellMap = null;
static {
if (spellMap == null) {
spellMap = new LinkedHashMap(20901);
}
initialize();
}
private CnToSpell() {
}
private static void spellPut(String ascii, String spells) {
spellMap.put(ascii, spells);
}
private static void initialize() {
init0();
init1();
init2();
init3();
init4();
init5();
init6();
init7();
init8();
init9();
init10();
init11();
init12();
init13();
init14();
init15();
init16();
init17();
init18();
init19();
init20();
init21();
init22();
init23();
init24();
init25();
init26();
init27();
init28();
init29();
init30();
init31();
init32();
init33();
init34();
init35();
init36();
init37();
init38();
init39();
init40();
init41();
init42();
init43();
init44();
init45();
init46();
init47();
init48();
init49();
init50();
init51();
init52();
init53();
init54();
init55();
init56();
init57();
init58();
init59();
init60();
init61();
init62();
init63();
init64();
init65();
init66();
init67();
init68();
init69();
init70();
init71();
init72();
init73();
init74();
init75();
init76();
init77();
init78();
init79();
init80();
init81();
init82();