漢字轉換字母,可以取首字母,也可以取全拼

2021-06-21 02:10:59 字數 1608 閱讀 3347

工作需要,需要寫個漢字轉換成字元並取出首字母作為縮小,方便查詢。因此就找資料研究,並完善乙個轉換方法,目前能實現:1.漢字轉換成拼音

2.轉換的拼音可以取首字母,也可以取全拼

3.帶過濾功能,可以把制定的過濾漢字剔除。

4.可以選擇使用的編碼,內建編碼轉換功能

5.提供兩種轉換字母的方式,選擇一種。

/***

*  $_string 要轉換拼音的漢字

*  $_code 使用的編碼

*  $_type  使用的轉換方式  1為使用字典方式(預設),2為使用編碼範圍方式

*/類名:pingyin

初始化方法:pinyin($_string, $_code='gb2312',$_type=1)

實現基本思想:

1.獲取漢字字串,選擇使用的編碼和轉換方式

2.內部指定過濾陣列和要選出的前n個漢字的字母(指定輸出n個漢字的首字母)

3.判斷編碼,轉換編碼

4.程式先過濾字串中需要過濾掉得字串或字元

5.把每個漢字轉換後取出首字母

6.拼接字母,然後輸出。

使用方法:

$str="你想要看到的字母";

echo $code;

輸出:nxy

1

<?php

2class pinyin extends action

69if(strlen($_string)>=$len)

70

73else

74

77for($i=0; $i

84if($_type ==1)

85

89else

90

9495 }

96//

return $i."

".$countlen."

".$_string."

".$_res."

".preg_replace("/[^a-z0-9]*/", '', $_res);

97return

preg_replace("/[^a-z0-9a-z]*/", '', $_res);

98 }

99function _pinyin($_num, $_data)elseif($_num

-10247)else

106return

substr($k,0,1);

107 }

108 }

109function _u2_utf8_gb($_c)elseif($_c

< 0x800) elseif($_c

< 0x10000)elseif($_c

< 0x200000)

126return

iconv('utf-8', 'gb2312', $_string);

127 }

128129

function _changecode($p)

130

163164 }

165166

167168

169 ?>

漢字提取首字母

public class getcnspell return mystr 把提取的字母變成小寫 需要轉換的字串 轉換結果 public string getlowerchinesespell string strtext 把提取的字母變成大寫 需要轉換的字串 轉換結果 public string g...

SQL 漢字轉換拼音首字母

create function whk fun getpy str nvarchar 4000 returns nvarchar 4000 asbegin declare word nchar 1 py nvarchar 4000 set py while len str 0 begin set w...

取漢字拼間首字母函式

說明 我原來也寫過乙個相同功能的函式,今天看到了下面的 發現比我寫的簡潔多了,效率不錯,特的抄錄在下面。sql函式 fun getpy 得到漢字串拼音 create function fun getpy str nvarchar 4000 returns nvarchar 4000 as begin...