`

在utf8字符集下,获取汉字拼音(mysql) (转)

 
阅读更多

主题: utf8字符集下,获取汉字拼音(mysql)

 

第一步:建立拼音对应表

 

DROP   TABLE   IF   EXISTS   `pyk`;     

  CREATE   TABLE   `pyk`   (     

      `PY`   varchar(1)    ,     

      `HZ1`   int  ,  

      `HZ2`   int        

  ) ;  

      

INSERT   INTO   `pyk`   (`PY`,`HZ1`,`HZ2`)   VALUES       

('A',-20319,-20284),  

('B',-20283,-19776),  

('C',-19775,-19219),  

('D',-19218,-18711),  

('E',-18710,-18527),  

('F',-18526,-18240),  

('G',-18239,-17923),  

('H',-17922,-17418),                 

('J',-17417,-16475),                

('K',-16474,-16213),                

('L',-16212,-15641),                

('M',-15640,-15166),                

('N',-15165,-14923),                

('O',-14922,-14915),                

('P',-14914,-14631),                

('Q',-14630,-14150),                

('R',-14149,-14091),                

('S',-14090,-13319),                

('T',-13318,-12839),                

('W',-12838,-12557),                

('X',-12556,-11848),                

('Y',-11847,-11056),                

('Z',-11055,-10247); 

 

 

第二步:建立函数

DROP FUNCTION IF EXISTS `hzcode`;

CREATE FUNCTION `hzcode` (s CHAR(255)) RETURNS char

BEGIN

                DECLARE hz_code int;

                DECLARE hz_py char;

                declare str varchar(400);

                SET hz_code = ord(convert(substring(s,1,1) using gbk))-65536 ;

                select py into hz_py from pyk where  hz_code>=pyk.hz1 and hz_code<=pyk.hz2;              

                RETURN hz_py;

 

        END;

 

特别注意SET hz_code = ord(convert(substring(s,1,1) using gbk))-65536 ;这句一定要convert函数,网上很多都没有这个函数

结果是在别的字符集下的数据库没有办法得到正确的结果.

 

测试一下

Select hz_code(‘’)

 

第三步:建立可以处理字符串的函数

drop function if exists hzcode_str;

create function hzcode_str(s varchar(30)) returns varchar(30)

begin

declare m_len int;

declare i int;

declare m_return varchar(50);

 

set i=1;

set m_len=char_length(s);

set m_return="";

 

while i<=m_len do

         #set m_return=hzcode(s);

         if hzcode(mid(s,i,1)) is not null then

                   set m_return = concat(m_return,hzcode(mid(s,i,1)));

         end if;

         set i=i+1;

end while;

return m_return;

end;

 

测试一下

Select hzcode_str(‘我是测试’);

 

 

结果正确

分享到:
评论

相关推荐

    Mysql中文汉字转拼音的实现(每个汉字转换全拼)

    由于汉字编码通常采用GBK或UTF-8,这里使用GBK字符集。 接下来,我们需要填充这个对照表。这一步通常涉及大量的数据插入,例如: ```sql INSERT INTO t_base_pinyin (pin_yin_, code_) VALUES ... ``` 此处省略了...

    mysql 汉字拼音数据库.zip

    在提供的压缩包"mysql 汉字拼音数据库.zip"中,可能包含两个SQL文件。第一个文件可能是一个精简版的数据库,只包含了常用汉字,适合那些只需要处理日常交流中常见词汇的场景。第二个文件则可能是一个更全面的汉字库...

    获取拼音首码和五笔首码

    例如,GB2312、GBK、UTF-8等字符集编码的处理,以及如何高效地生成和存储拼音和五笔码。 在数据库设计时,可以创建一个特殊的数据表,包含汉字、拼音首码、五笔首码等字段。当用户输入拼音或五笔首码时,数据库系统...

    MySQL按照汉字的拼音排序简单实例

    总的来说,MySQL按照汉字拼音排序涉及到字符集的处理和可能的转码操作。在GBK字符集中可以直接排序,而在UTF-8字符集中则需要转码或利用其他工具进行拼音转换。在实际应用中,应根据具体需求和数据量选择最适合的...

    使用PHP实现汉字转拼音1

    GB2312是中国大陆广泛使用的简体中文字符集,它包含了许多常用汉字的编码。在PHP中,我们可以使用iconv函数进行不同编码间的转换。 要实现汉字转拼音,我们首先需要创建一个PHP文件,例如"index.php"。然后,定义一...

    MYSQL 汉子字典词典数据库合集

    在使用这些数据时,需要注意的是,由于是UTF8格式,所以需要在MySQL中创建相应的字符集支持,确保数据能够正确存储和检索。同时,为了保护用户隐私和版权,确保数据来源合法,并在使用时遵守相关法律法规。此外,...

    mysql 中文 模糊搜索 不精确 解决办法

    1. **合理选择字符集**:确保数据库表字段使用的字符集一致,推荐使用`utf8mb4`。 2. **限制搜索范围**:在执行模糊搜索时尽可能缩小搜索范围,比如增加额外的筛选条件。 3. **定期更新统计信息**:对于使用全文索引...

    MySQL对中文进行排序详解及实例

    MySQL默认的排序规则是基于字节的,这适用于ASCII字符集,但不适用于包含多字节字符集如UTF-8或GBK的中文字符。当我们尝试用`ORDER BY`语句对中文字段进行排序时,如果不进行特殊处理,可能会得到不符合预期的结果。...

    mysql如何根据汉字首字母排序

    然而,这种方法只能处理GB2312或GBK编码的汉字,对于UTF-8编码的数据库,需要使用`CONVERT()`配合`utf8`或`utf8mb4`字符集。 另外,需要注意的是,这种排序方式实际上是基于汉字的拼音首字母,而非笔画或部首。对于...

    mysql如何按照中文排序解决方案

    在上述例子中,`person`表的字符集被设定为`utf8`。 当涉及到中文排序时,MySQL会根据所选的字符集进行排序。在上述代码中,我们使用了`CONVERT`函数配合`GBK`编码进行排序。`CONVERT`函数用于将数据转换为指定的...

    unicode 汉字编码表

    - **数据库设计**: 数据库表设计时选择支持Unicode的字符集类型,如MySQL中的`utf8mb4`。 - **文本编辑器**: 大多数现代文本编辑器都默认支持Unicode编码。 #### 七、总结 Unicode作为一种国际化的字符编码标准,...

    处理生僻字

    大多数现代关系型数据库管理系统(如SQL Server、MySQL等)都支持Unicode,因此在创建表时应确保字段的字符集设置为支持Unicode的,如UTF-8或UTF-16。插入生僻字时,可以直接输入Unicode编码或者通过程序处理后插入...

    PHP读取数据库并按照中文名称进行排序实现代码

    在上述SQL语句中,我们不仅为name字段指定了utf8字符集,同时也指定了utf8_general_ci排序规则,这样在未指定排序子句的情况下,查询结果也将遵循中文的自然排序顺序。 此外,除了在数据库层面进行处理外,还应考虑...

    易语言程序免安装版下载

    绑定参数()”命令不支持汉字/UTF-8。 14. 修改BUG:VCL相关支持库部分组件在修改个别属性或调用个别方法后不可见,并改进了Delphi版本的支持库SDK。 15. 修改BUG:高级表格在列类型为数值型时,添加新行且省略标题...

    计算机考试【选择题】和【操作题】例题.docx

    常见的汉字编码有GBK、UTF-8等。 ### 网络技术 - **MAC地址**:即物理地址,是设备在网络中的唯一标识符,用于在网络层和数据链路层之间传递数据。 - **IP地址分类**:IPv4地址分为A、B、C、D、E五类,但实际中主要...

Global site tag (gtag.js) - Google Analytics