首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JS兑现汉字转拼音【转】

2012-11-04 
JS实现汉字转拼音【转】今天在网上发现一个汉字转拼音的东东,觉得不错,不敢独享,特共享出来。或许坛子里面有

JS实现汉字转拼音【转】
今天在网上发现一个汉字转拼音的东东,觉得不错,不敢独享,特共享出来。或许坛子里面有此类东西了,我好像没有找到。希望对大家有点用处!在IE下测试通过。

代码:

HTML code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>    <head>        <title>用JS实现汉字转拼音</title>        <meta http-equiv="content-type" content="text/html; charset=utf-8"/>        <meta name="Author" content="hi.baidu.com/samaria_g"/>        <body>            <table>                <tr>                    <td>                        <table>                            <thead>                                <tr>                                    <td align="center">                                        <strong>汉字转拼音</strong>                                    </td>                                </tr>                            </thead>                            <tfoot>                                <tr>                                    <td align="center">                                        &copy;&nbsp;No&nbsp;Copyright&nbsp;&nbsp;hi.baidu.com/samaria_g                                    </td>                                </tr>                            </tfoot>                            <tbody>                                <tr>                                    <td>                                        <textarea rows="12" cols="100" id="test">                                            请在此输入简体汉字                                        </textarea>                                    </td>                                </tr>                                <tr>                                    <td align="center">                                        <input type="button" value="转换" onclick="javascript:btnClick()"/>&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="重置" onclick="javascript:clrAll()"/><hr>                                        <textarea id="tt" rows="20" cols="100">                                        </textarea>                                    </td>                                </tr>                            </tbody>                        </table>                    </td>                    <td>                        此工具可以把简体汉字以完全拼音的模式输出,输入内容中包含的繁体字、英文字母、标点等将以其原形后加空格输出。                        <br>                        <p>                            注:此工具仅在IE中测试通过。                        </p>                        <p style=" text-align:right;">                            JS设计:<a href="http://hi.baidu.com/heihei1314/blog/item/d35e942bf78a78f2e6cd40bf.html">heihei1314</a>                            <br>                            界面及优化:<a href="http://hi.baidu.com/samaria_g/blog/item/4e032afe007961385d600839.html">Samaria</a>                        </p>                    </td>                </tr>            </table>        </body>        </html>        <script language="javascript">            function clrAll() {                window.location.reload();            };            function btnClick() {                var arg = document.getElementById("test").value;                var msg = isChinese(arg);                if (!msg) {                    alert("请输入需要转换的内容!");                    return;                }                var str = toPinyinOnly(arg);                document.getElementById("tt").value = str;            }                        function isChinese(str) {                if ("" == str) {                    return false;                }                return true;            }                        //进行汉字转换            function pinyin(chars){                var spellArray = new Array();                var tx = chars                execScript("ascCode=hex(asc(\""+chars+"\"))", "vbscript");                ascCode = eval("0x"+ascCode);                if(event.keyCode==13) event.keyCode=9;                 else if(!chars.charCodeAt(0) || chars.charCodeAt(0) < 1328){                    return tx;                } else if (!(ascCode > 0xB0A0 && ascCode < 0xD7FC)){                    return tx;                } else {                   for (var i = ascCode; !spell[i] && i > 0;) i--;                   return spell[i]                }            }                        function toPinyinOnly(str) {                var pStr = ""                for (var i = 0; i < str.length; i++) {                    if (str.charAt(i) == "\r") {//重要!解决回车输入的Bug!!                        pStr += "\r";                        i++;                    } else {                        pStr += pinyin(str.charAt(i)) + " ";                    }                }                return pStr;            }                        var spell = 见下面的帖子,这个太长,一次发不出来        </script> 



[解决办法]
按编码来说.spell只包含GB2312内的汉字.现在一般都用到GBK了吧...
[解决办法]
不错,顶下。
不过我要把charset=utf-8改成gbk才可以,不然乱码
[解决办法]
其实都不能转UTF-8的汉字
[解决办法]
还是有缺陷的,有的汉字无法转换

热点排行