温馨提示:这篇文章已超过760天没有更新,请注意相关的内容是否还可用!
1、拼音码是什么
也可以是汉字词组对应的拼音首字母的简写。
简单来说,就是汉字对应的拼音
2、在C#里如何根据汉字首字母代替汉字直接查询相关内容,详细代码?
这个可以参考一下:
{
// 简体中文的编码范围从B0A1(45217)一直到F7FE(63486)
private static int BEGIN = 45217;
private static int END = 63486;
// 按照声母表示,这个表是在GB2312中的出现的***个汉字,也就是说“啊”是代表首字母a的***个汉字。
// i, u, v都不做声母, 自定规则跟随前面的字母
// 二十六个字母区间对应二十七个端点
// GB2312码汉字区间十进制表示
private static int[] table = new int[27];
// 对应首字母区间表
//得到首拼音码需先在InitializeComponent()函数后,得到GB2312码的首字母区间端点表
public static void Pymtable()
{
//为取得首拼音添加代码
for (int i = 0; i < 26; i++)
{
table[i] = gbValue(chartable[i]);// 得到GB2312码的首字母区间端点表,十进制。
}
table[26] = END;// 区间表结尾
}
public static String GetPym(String SourceStr)
{
String Result = "";
int StrLength = SourceStr.Length;
int i;
try
{
for (i = 0; i < StrLength; i++)
{
Result += Char2Initial(SourceStr[i]);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
Result = "";
}
return Result;
}
public static char Char2Initial(char ch)
{
// 对英文字母的处理:小写字母转换为大写,大写的直接返回
return ch;
// 对非英文字母的处理:转化为首字母,然后判断是否在码表范围内,
// 若不是,则直接返回。
// 若是,则在码表内的进行判断。
int gb = gbValue(ch);// 汉字转换首字母
if ((gb < BEGIN) || (gb > END))// 在码表区间之前,直接返回
return ch;
int i;
for (i = 0; i < 26; i++)
{// 判断匹配码表区间,匹配到就break,判断区间形如“[,)”
if ((gb >= table[i]) && (gb < table[i + 1]))
break;
}
if (gb == END)
{//补上GB2312区间***右端
i = 25;
}
return initialtable[i]; // 在码表区间中,返回首字母
}
/*** 取出汉字的编码 cn 汉字*/
public static int gbValue(char ch)
{
// 将一个汉字(GB2312)转换为十进制表示。
string str = "";
str += ch;
try
{
gb2312string df = new gb2312string();
df = str;
byte[] bytes = df.ToByteArray();
if (bytes.Length < 2)
return 0;
return (bytes[0] << 8 & 0xff00) + (bytes[1] & 0xff);
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
return 0;
}
}
/// <summary>
/// 是否存在生僻字
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static bool HasUnfamiliarWord(string value)
{
int start = 0xE000;
int end = 0xAFFE;
string s = "";
s = value;
char[] cs = s.ToCharArray();
foreach (char item in cs)
{
int i = Convert.ToInt32(item);
if (i >= start && i <= end)//unicode 在0xF8F0和0xAFFE之间的为生僻字
{
return true;
}
}
return false;
}
这个自己写太费劲,你可以使用第三方控件
一种简单的办法就是再数据库中存储汉字的首字母,然后按照首字母查询即可。
3、按汉语拼音首字母查询数据
方法一:建一个拼音表 t_cosler ,存放每个字母开头的***个汉字的编号和***后一个汉字的编号。 +------+--------+-------+ | f_PY | cBegin | cEnd | +------+--------+-------+ | A | 45217 | 45252 | | B | 45253 | 45760 | ..... | Z | 54481 | 55289 | +------+--------+-------+ 然后直接查询就行了。
局限性: 以上方法,均依照汉字区位表来实现,对区位后面的复杂字,无法准确判断,对多音字无法准确判断。
这里有个网页 http://m.cnblogs.com/55979/1648972.html,看看吧,我找了,这里只能用存储过程,你看看,应该可以帮你解决问题。
说下你的QQ 我联系你怎么做
4、如何获取汉字拼音首字母
获取首字母需要对汉字表和
字母表
进行映射,如下示例代码是以gb2312编码为入手点,进行匹配的,也可以使用gbk、utf-8等编码进行匹配
5、打字里全拼和双拼是什么意思 ?
全拼 一种输入法,使用全拼双音汉字输入法。既可以输入单个汉字,也可以输入双字词汇。这个输入法有两个功能:
1.打出偏旁,你只要在里面输入pianpang就会出现偏旁,然后选4回出现“匚”。
2.可以打繁体字,比如要打“机”的繁体字,你在里面输入ji,再在里面找就能找到。不过用全拼打繁体字很慢。
双拼
首先必须先说明的是,双拼和全拼或五笔一样,是一种输入方式,通常习惯上称之为双拼输入法,但是它不是一种输入法软件——实际上相当多的人有这种误区。
现在还有更***的“双合”输入法,理论目标远远超越“双拼”输入法!
双拼(也称双打)是一种建立在拼音输入法基础上的输入方法,可视为全拼的一种改进,它通过将汉语拼音中每个含多个字母的声母或韵母各自映射到某个按键上,使得每个音都可以用***多两次按键打出(具体请看后文“概念详解”部分),很大地提高了拼音输入法的打字速度。这种声母或韵母到按键的对应表通常称之为双拼方案,这种方案不是固定的,现在流行的大多数拼音输入法都支持双拼,并且有各自不同的方案,还允许用户自定义方案。只要记住了所想要使用的方案,就能掌握双拼输入法。现在常见的方案包括:自然码双拼方案和拼音加加双拼方案——目前大多数输入法软件采用前者的方案或建立在其基础之上,后者相对不流行,但在电子词典等平台上使用较多。(附图,自然码双拼方案)
双拼的好处是,比起五笔的字根,双拼方案要好记得多(后面还会介绍一些技巧),而熟练使用之后因为要按的键数大为减少所以输入速度又比全拼快很多。而且同样可以利用全拼中只输入首字母或模糊音输入的简拼方式,所以双拼是一种易学而快速高效的打字方法。
概念详解
汉语拼音中绝大部分音由声母和韵母两部分组成,少数如“啊”、“安”、“哦”等只有韵母。而声母和韵母又可以分为单字母的和多字母的——除zh、ch、sh外所有的声母都是单字母,除a、e、i、o、u、v6个元音外所有的韵母都是多字母的。所以,只要将zh、ch、sh3个声母用只作韵母的6个元音中的3个表示,而将6元音以外的所有韵母用6元音以外的键来表示(注1),那么所有的音都能用两个键打出来——声母和韵母都是单字母的(比如“大”-da)打法和全拼一样,而存在多字母声母和韵母的则将该声母或韵母用对应按键表示,举例来说,在拼音加加方案下打“窗”这个字,拼音是“chuang”,而声母ch在该方案下用u表示,韵母uang用h表示,那么只要输入“uh”就等同于在全拼下输入“chuang”。(输入单韵母的音的方法见注2)
而双拼输入法在连续输入时将第单数个按键识别为声母,第偶数个按键识别为韵母(这是一般情况,但不是绝对的,请看注3),这样每2次按键就能完成一个音的输入并依次实现词和句子的输入,如果***终输入的字母数是奇数个,那么其中***少一个字母将被视为简拼形式(即只输入了拼音首字母)并被模糊组词。
注1:理论上,所有除6元音和系统功能键之外的键都能用于设置一个韵母,但是通常的方案只允许使用字母键和“;”键。并且,一个按键有时可以同时对应不冲突的两个韵母(详见后文“使用双拼的技巧”第2部分)。
注2:单韵母音的打法,各种不同的方案有不同的方法,具体应该参看各方案的说明。但是一个比较流行的办法是,以一个没有被用作表示zh、ch、sh的元音字母作虚声母(也称零声母)加在相应韵母之前,目前使用o作虚声母的方案较普遍。以此为例,在搜狗方案下输入音“ai”就应该键入“ol”(该方案下ai韵母用l表示)。
注3:输入法软件会根据实际情况组合,从输入的第1个字母视为声母开始检查,如果能与下一个字母组合成一个音则将该字母识别为韵母并组合,然后将再下一个字母视为声母继续检查下去。当无法组成一个音时就将该声母视为简拼形式并将下一个字母重新识别为声母尝试与下下个字母组合,依此类推。举例来说,在拼音加加方案下输入“bnn”时,因为N表示韵母“iu”,而b-n无法组合,所以b被视为简拼,而n-n组成niu音,所以这时将出现符合***个字拼音首字母为b而第二个字发音为niu的词条(比如“别扭”)。
使用双拼的技巧
以下内容会较多提到搜狗拼音输入法这种软件,不是想做广告,而是因为,这种革命性的新一代输入法软件的很多创新功能及其智能系统为双拼输入法注入了新的活力。所以,在技巧的介绍上,应该利用其性能。
2.创建自己能更快熟悉的方案。对于刚开始使用双拼的一大障碍,和用五笔要记字根一样,无非是开始时要熟悉方案,记清哪个音对应哪个键。那么,不妨创建出自己的双拼方案以便于自己记忆,特别是有了搜狗输入法的在线记录用户配置方案的功能之后,无论走到哪里都可以立刻方便地使用自己熟悉的方案。创建自定义方案有两个要点:***是不能出现冲突按键,——由于能使用的键数不够,必须有若干韵母共享一个键,但是不能出现一个键上的两个韵母都能和某个声母组合的情况(如何保证不出现冲突请见注4);第二是在***的基础上怎么好记怎么设。这里推荐一个方法:尽量使每个韵母都能和对应键本身代表的声母组合,只要记住那个音(或是那个音的某个字),就能记住哪个韵母在哪个键上了。例如,自然码方案下,l键与对应的韵母ai组成lai音,只要回忆起“来”这个字(或是其他lai音的用户映像深刻的字)就记住ai音在l键上了。所以,不妨在原有方案的基础上自行交换一些原来组不成发音的对应,这样很快就能建立起自己的方案(关于一些在搜狗输入法下设置方案的技巧,请看注5)。此外,刚开始时可以开启双拼展开提示功能,只要用一阵子,一个月左右就能熟练到对发音的***反应是双拼方式而取代全拼。
注4:这一点需要用户自己把握,但这并不是难事,一个建议——将ong-iong;ue-ui;iang-uang;ia-ua这4对有关联但不冲突的韵母组合各自设在4个键上,其他的键就能每个键只设一个韵母了。
双拼就是把韵母集中在一个键位里.比如D代表iang和uang这两个韵母,所以打"将"的时候全拼输入的字母为J,I,A,N,G.而双拼只需要输入jd即可.也就是说所有汉字都是可以用两个字母打出来的.所以比你全拼应该快的多.搜狗也支持双拼.你也不用更改输入法习惯了.只需要记住几个字根即可.我刚刚说的是***常用的微软双拼方案.还有自然码方案,智能ABC方案,我感觉微软的***普遍,键位也比较合理.所以推荐微软方案..具体的键位你自己百度把.我没到等级不能插入图片..或者在搜狗里面点设置***页里面有双拼方案.用搜狗的和微软的双拼方案都行.其实都差不多的.然后后面点那个按钮我忘了叫啥了 就在双拼后面.那里就有键位.背一下即可
还没有评论,来说两句吧...