在vb中怎样实现汉字转换为拼音
发布网友
发布时间:2022-04-26 15:56
我来回答
共1个回答
热心网友
时间:2022-05-04 20:19
public string hz2py(string hz) //获得汉字的区位码
{
byte[] sarr = System.Text.Encoding.Default.GetBytes(hz);
int len = sarr.Length;
if (len>1)
{
byte[] array = new byte[2];
array = System.Text.Encoding.Default.GetBytes(hz);
int i1 = (short)(array[0] - '\0');
int i2 = (short)(array[1] - '\0');
//unicode解码方式下的汉字码
// array = System.Text.Encoding.Unicode.GetBytes(hz);
// int i1 = (short)(array[0] - '\0');
// int i2 = (short)(array[1] - '\0');
// int t1 = Convert.ToInt32(i1,16);
// int t2 = Convert.ToInt32(i2,16);
int tmp=i1*256+i2;
string getpychar="*";//找不到拼音码的用*补位
if(tmp>=45217&&tmp<=45252){getpychar= "A";}
else if(tmp>=45253&&tmp<=45760){getpychar= "B";}
else if(tmp>=47761&&tmp<=46317){getpychar= "C";}
else if(tmp>=46318&&tmp<=46825){getpychar= "D";}
else if(tmp>=46826&&tmp<=47009){getpychar= "E";}
else if(tmp>=47010&&tmp<=47296){getpychar= "F";}
else if(tmp>=47297&&tmp<=47613){getpychar= "G";}
else if(tmp>=47614&&tmp<=48118){getpychar= "H";}
else if(tmp>=48119&&tmp<=49061){getpychar= "J";}
else if(tmp>=49062&&tmp<=49323){getpychar= "K";}
else if(tmp>=49324&&tmp<=49895){getpychar= "L";}
else if(tmp>=49896&&tmp<=50370){getpychar= "M";}
else if(tmp>=50371&&tmp<=50613){getpychar= "N";}
else if(tmp>=50614&&tmp<=50621){getpychar= "O";}
else if(tmp>=50622&&tmp<=50905){getpychar= "P";}
else if(tmp>=50906&&tmp<=51386){getpychar= "Q";}
else if(tmp>=51387&&tmp<=51445){getpychar= "R";}
else if(tmp>=51446&&tmp<=52217){getpychar= "S";}
else if(tmp>=52218&&tmp<=52697){getpychar= "T";}
else if(tmp>=52698&&tmp<=52979){getpychar= "W";}
else if(tmp>=52980&&tmp<=53640){getpychar= "X";}
else if(tmp>=53689&&tmp<=54480){getpychar= "Y";}
else if(tmp>=54481&&tmp<=55289){getpychar= "Z";}
return getpychar;
}
else
{
return hz;
}
}
public string transpy(string strhz) //把汉字字符串转换成拼音码
{
string strtemp="";
int strlen=strhz.Length;
for (int i=0;i<=strlen-1;i++)
{
strtemp+=hz2py(strhz.Substring(i,1));
}
return strtemp;
}
create table tabpy(id int identity,b_begin varbinary(2),b_end varbinary(2),word varchar(2))
insert tabpy select 0xB0A1, 0xB0C4,'A'
union all select 0xB0C5, 0xB2C0,'B'
union all select 0xB2C1, 0xB4ED,'C'
union all select 0xB4EE, 0xB6E9,'D'
union all select 0xB6EA, 0xB7A1,'E'
union all select 0xB7A2, 0xB8C0,'F'
union all select 0xB8C1, 0xB9FD,'G'
union all select 0xB9FE, 0xBBF6,'H'
union all select 0xBBF7, 0xBFA5,'J'
union all select 0xBFA6, 0xC0AB,'K'
union all select 0xC0AC, 0xC2E7,'L'
union all select 0xC2E8, 0xC4C2,'M'
union all select 0xC4C3, 0xC5B5,'N'
union all select 0xC5B6, 0xC5BD,'O'
union all select 0xC5BE, 0xC6D9,'P'
union all select 0xC6DA, 0xC8BA,'Q'
union all select 0xC8BB, 0xC8F5,'R'
union all select 0xC8F6, 0xCBF9,'S'
union all select 0xCBFA, 0xCDD9,'T'
union all select 0xCDDA, 0xCEF3,'W'
union all select 0xCEF4, 0xD1B8,'X'
union all select 0xD1B9, 0xD4D0,'Y'
union all select 0xD4D1, 0xD7F9,'Z'
函数:
create function getfirstpy(@a varchar(200))
returns varchar(100)
as
begin
declare @i int,@j int,@result varchar(100)
set @result=''
set @i=len(@a)
set @j=1
while @j<=@i
begin
select @result=@result+word from tabpy where cast(substring(@a,@j,1) as varbinary(2)) between b_begin and b_end
set @j=@j+1
end
return @result
end追答只能用数据库的形式,如果你对GB2312编码有研究的话,你会知道,它的码表是按换汉语拼音来排的,这样你做数据库的时候可以参考GB2312的标准,可以把数据库设计得稍微简单那么一点点。
在vb中怎样实现汉字转换为拼音
public string hz2py(string hz) //获得汉字的区位码 { byte[] sarr = System.Text.Encoding.Default.GetBytes(hz);int len = sarr.Length;if (len>1){ byte[] array = new byte[2];array = System.Text.Encoding.Default.GetBytes(hz);int i1 = (short)(array[0] - '\0');int i...
excel表格计数函数
Excel一键自动匹配,在线免费vlookup工具,3步完成!Excel在线免费vlookup工具,点击40步自动完成vlookup匹配,无需手写公式,免费使用!
请高手帮助,VB汉字转拼音代码?
Ctrl+空隔或Ctrl+Shift转换使用。
VB汉字转拼音!!紧急!!
好像没有这样的,不过你可以做一个读取文件的程序,当然为了方便,你可以事先写一个程序:界面上放二个文本框,一个按钮,第一个文本框里写你要编码的字,第二个框内写编码即拼音,然后按钮用来用两个文本框内的字符存入一个文件,然后反过来做一个程序,就是写一输入一个字,然后点查询,在第二框...
在vb中怎样实现汉字和拼音的转换
只能用数据库的形式,如果你对GB2312编码有研究的话,你会知道,它的码表是按换汉语拼音来排的,这样你做数据库的时候可以参考GB2312的标准,可以把数据库设计得稍微简单那么一点点。
VB 在输入汉字时怎样自动出现拼音码
Next i End Sub Public Function py(mystr As String) As String i = Asc(mystr)Select Case i Case -20319 To -20284: py = "A"Case -20283 To -19776: py = "B"Case -19775 To -19219: py = "C"Case -19218 To -18711: py = "D"Case -18710 To -18527: py = "E"Case...
通过vb如何实现按中文词语拼音的首字母排序?
'在窗口中加两个TEXT控件,一个输入中文,一个显示英文 Private Sub Form_Load()Text1.Text = "转汉语拼音"End Sub Private Sub Command1_Click()Text2.Text = GetPY(Text1.Text)End Sub '获得输入名称的首字拼音 Private Function GetPY(ByVal strParmeter As String) As String Dim intTmp ...
VB中个别字汉字转拼音无法显示?如何解决
你这个汉字转拼音的函数是常用汉字的,取的是ASCII从-20319到-10247 的汉字 你的孢,孚都是这个范围之外的..解决方法只能再找更全的码表呵..比如包含也有的GBK文字的 补充:我找到的另类的解决方法:=== '模块:Option Explicit Private Const IME_ESC_MAX_KEY = &H1005 Private Const IME_ESC_IME...
比如说用VB 要把 李世明 三个字转成拼音LI SHI MING 拼音与拼音有空格...
Private Declare Function icePub_dictionaryCodeTransfer Lib "icePubDll.dll" (ByVal strDictionaryFilename As String,ByVal strSrc As String,ByVal strCode As String) As Integer Dim a2 As Integer Dim strCode As String strCode=Space(1024)a2=icePub_dictionaryCodeTransfer("拼音字典.txt","...
EXCEL技巧——导出汉字姓名首字母
我们在信息表里面要常常用到姓名,那么如何把姓名转化为拼音的首字母呢?这里我们来学习以下方法。导入一张含有姓名的表格,把姓名放到A列中,在B列中将要导出拼音。现在我们按住Alt+F11,打开VB编辑窗口,单击插入——模块,弹出代码编辑框。在代码编辑框中输入: Option Explicit Function PY(TT As ...
VB编写怎么生成拼音
汉字表内没有这们的拼音。如果你想添加自定义的汉字,可以用程序打开文件,在相应位置插入即可。