(UTF-8)ASP汉字转拼音函数(附Access数据库)

本文介绍了一个能在UTF-8编码环境下将汉字转换为拼音的ASP函数。该函数利用Access数据库实现,并依赖于一个拼音对照数据库。文章提供了函数的具体实现代码及下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    很久以来没有一个很好的,能够在UTF-8编码的ASP中汉字生成拼音的函数。当使用ASCW得到一个汉字的ASCII码值的时候也是没有任何规律来获得一个汉字的拼音。测试了很久也没有找到一个很好的办法,后来发现在MS SQL中当Chinese_PRC_CS_AS_KS_WS排序时,可以划定汉字拼音的区域,经过整理,终于可以实现在UTF-8编码下汉字转拼音,随时制作出来了MS SQL汉字转拼音函数。但是不是所有的网站都能够使用MS SQL 数据库,经测试在Access数据库中汉字的排序和MS SQL中的Chinese_PRC_CS_AS_KS_WS排序一致,这是一个不小的惊喜,所以制作出来一份“(UTF-8)ASP汉字转拼音函数(附Access数据库)”。不过完全依靠ASP程序是完成不了的,所以需要附加一个拼音对照数据库。
    希望这个程序能够很好的服务与大家,也请大家转载和使用的时候保留作者信息。

<%
'---------------------------------------------------------------
' Hanzi to Pinyin Function
' Copyright (c) 2009 Sean.Leo
' 流香羽/27879669
' Date: 2009-06-02 09:35
'---------------------------------------------------------------
Function Hanzi2Pinyin(strHanzi)
    Dim objConn
    Dim chrHanzi
    Dim intHanziAsc
    Dim i
    Hanzi2Pinyin = ""
    If strHanzi > "" Then
        Set objConn = Server.CreateObject("ADODB.Connection")
        objConn.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & server.mappath("pinyin.mdb") '汉字拼音对照数据库
        For i = 1 to Len(strHanzi)
            chrHanzi = Mid(strHanzi, i, 1)
            intHanziAsc = Ascw(chrHanzi)
            If intHanziAsc < 0 Then intHanziAsc = intHanziAsc + 65536
            If intHanziAsc < 127 Then '英文
                Hanzi2Pinyin = Hanzi2Pinyin & chrHanzi
            ElseIf intHanziAsc >= 19968 and intHanziAsc <=33367 Then '汉字
                Hanzi2Pinyin = Hanzi2Pinyin & objConn.Execute("select top 1 Pinyin from CollatePinyins where Word >= '" & chrHanzi & "' order by Word asc")(0)
            Else '其他标点字符
                Hanzi2Pinyin = Hanzi2Pinyin & "-"
            End If
        Next
        objConn.Close
        Set objConn = Nothing
    End If
End Function
' 测试
response.write Hanzi2Pinyin("欢迎使用流香羽的汉字转拼音函数")
%>

下载地址: http://bbs.chinaz.com/Res/thread-1304724-1-1.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值