主题: 在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(‘我是测试’);
结果正确
分享到:
相关推荐
oracle,GBK,UTF-8字符集下获取拼音首字母_拼音截取等 oracle汉字转拼音package_获得全拼—GBK—拼音首字母_拼音截取 oracle汉字转拼音package_获得全拼—UTF8—拼音首字母_拼音截取 还实例。
此文本文档是UTF-8字符集中汉字编码对照表,可以用于查看某个汉字在UTF-8编码集中的位置。此编码集对照表非官网下载,如需使用,请提前预估风险。另外,此对照表只用于学习研究,如需用到其他地方,后果自负。
最全UTF8所有汉字、简繁字、生僻字、UTF8字库拼音对照表(21966字)。所有缺字从汉典网补全。
linux下设置mysql字符集为UTF-8以及mysql重启
mysql8.0下utf8mb4字符集设置。 安装后,参照此my.ini设置,重启数据库即可。
QRCode的中文使用的是UTF8字符集,而一些电子设备默认只支持GB18030字符集或GB2312字符集。 所以当要生成包含中文字符的QRCode时,需要做字符集转换。 调用函数unsigned char GbkToUtf8(unsigned char * pIN,...
常用汉字字符集 主要用于随机生成常用汉字 做汉字验证码
UTF8字符集 UTF8并不算是一种电脑编码,而是一种储存和传送的格式,如前所述,每个Unicode/UCS字符都以 2或4个bytes来储存,看看以下的比较:
utf8编码汉字获取首字母,去掉ConvertGBKToUtf8(ch);函数和引用库,ASCII编码汉字也可获取拼音首字母,第一个cpp是所有汉字可以获取首字母,第二个cpp仅针对常用汉字可用的c++获取汉字首字母
C语言将UTF8编码的汉字转为拼音的拼音库,有2W多字的拼音库,支持生僻字
mysql数据库utf8转utf8mb4工具,将mysql数据库从utf8字符集转换为utf8mb4字符集,或将数据库从 utf8mb4字符集 转换为 utf8字符集。
汉字转全拼音或拼音首字母,支持gb2312和utf8编码 ,附带函数说明, 汉字转换为全拼音或拼音首字母 使用方法: include(ROOT_PATH.'includes/cls_chart_pinyin.php'); echo Pinyin('中国人','utf-8',false); 函数...
VB(Visual Basic) UTF8 字符...这里我们做了一小方法、直接先将我们要发送的中文字符转换为UTF8字符集的编码然后在发送Post出去、这样就可以在其他系统里面直接获取、不用去担心乱码问题 GBK相同原理、本人不习惯gbk
可以将汉字转换成拼音的asp源文件,什么文件无关紧要,关键是资源及转换的方法。
跨平台(windows Linux)是纯c实现 gbk/utf8互转,Ansi/Utf8互转,
版本:mysql5.7 环境:windows 备注:配置mysql的字符集为utf8mb4 *为了解决mysql乱码参考了几个博客,只能在此鸣谢一下所有提供有价值的博客作者,此文件就上传备份一下
很多人喜欢用CString 或std:string,但是他们的缺点是不能完成汉字各种类型之间的转换,提供三种类库ascString,ucsString,utfString以及工具utfCount,utf8_ucs2_t,tcf8_ucs4_t类库,用于各种字符串之间的直接转换`...
springboot在集成flowable时,添加flowable依赖,配置完成数据库连接,项目第一次启动会初始化数据库flowable相应的表,默认会加载的字符集为utf8(CHARSET=utf8 COLLATE utf8_bin),在mysql8后,在创建数据库时,...
PHP汉字转拼音(UTF-8) PHP中文转拼音,可以把字符串中文转成对应的拼音
UTF-8 中文 字符集表 免费share UTF-8 ---> Chinese Charset Table