ASP汉字转拼音 支持自定义特殊词语

  这次更新博客,将生成静态文件时的文件名用文章标题的拼音,这就涉及到如何将文字转成拼音了,在网上大概的看了看,千篇一律的那个函数,应该只可以在GB2312下正常,也没有做太多考虑,这就拿出了曾在无忧系统的源码里看到过的一段用上了。

  来看看下面的函数,加入少量注释:这是一个自定义特殊词语的一个函数

以下为引用的内容:

Function getEnglish(ByVal Str)

    getEnglish = Str

    getEnglish = Replace(getEnglish, "中国", " china ")

    getEnglish = Replace(getEnglish, "策划", " plan ")

    getEnglish = Replace(getEnglish, "免费", " free ")

    getEnglish = Replace(getEnglish, "介绍", " intro ")

    getEnglish = Replace(getEnglish, "技巧", " skill ")

    getEnglish = Replace(getEnglish, "生活", " life ")

    getEnglish = Replace(getEnglish, "活动", " activity ")

    getEnglish = Replace(getEnglish, "工具", " tool ")

    getEnglish = Replace(getEnglish, "联盟", " union ")

    getEnglish = Replace(getEnglish, "注册", " register ")

    getEnglish = Replace(getEnglish, "经验", " experience ")

    getEnglish = Replace(getEnglish, "翻译", " translate ")

    getEnglish = Replace(getEnglish, "项目", " item ")

    getEnglish = Replace(getEnglish, "网站", " web-site ")

    getEnglish = Replace(getEnglish, "英语", " english ")

    getEnglish = Replace(getEnglish, "英文", " english ")

    getEnglish = Replace(getEnglish, "雅虎", " yahoo ")

    getEnglish = Replace(getEnglish, "新浪", " sina ")

    getEnglish = Replace(getEnglish, "支付宝", " alipay ")

    getEnglish = Replace(getEnglish, "交易", " trade ")

    getEnglish = Replace(getEnglish, "网店", " b2c ")

    getEnglish = Replace(getEnglish, "升级", " update ")

    getEnglish = Replace(getEnglish, "杂志", " magazine ")

    getEnglish = Replace(getEnglish, "空间", " space ")

    getEnglish = Replace(getEnglish, "爱情", " love ")

    getEnglish = Replace(getEnglish, "朋友", " friend ")

    getEnglish = Replace(getEnglish, "友情", " friend ")

    getEnglish = Replace(getEnglish, "链接", " like ")

    getEnglish = Replace(getEnglish, "标签", " label ")

    getEnglish = Replace(getEnglish, "运行", " running ")

    getEnglish = Replace(getEnglish, "管理", " manager ")

    getEnglish = Replace(getEnglish, "管理", " manage ")

    getEnglish = Replace(getEnglish, "页面", " page ")

    getEnglish = Replace(getEnglish, "模板", " template ")

    getEnglish = Replace(getEnglish, "游戏", " game ")

    getEnglish = Replace(getEnglish, "论坛", " forum ")

    getEnglish = Replace(getEnglish, "新闻", " news ")

    getEnglish = Replace(getEnglish, "音乐", " music ")

    getEnglish = Replace(getEnglish, "帮助", " help ")

    getEnglish = Replace(getEnglish, "优化", " optimize ")

    getEnglish = Replace(getEnglish, "软件", " soft ")

    getEnglish = Replace(getEnglish, "教程", " tech ")

    getEnglish = Replace(getEnglish, "下载", " download ")

    getEnglish = Replace(getEnglish, "搜索", " search ")

    getEnglish = Replace(getEnglish, "引擎", " engine ")

    getEnglish = Replace(getEnglish, "蜘蛛", " spider ")

    getEnglish = Replace(getEnglish, "日志", " log ")

    getEnglish = Replace(getEnglish, "博客", " blog ")

    getEnglish = Replace(getEnglish, "百度", " baidu ")

    getEnglish = Replace(getEnglish, "谷歌", " google ")

    getEnglish = Replace(getEnglish, "邮箱", " mailbox ")

    getEnglish = Replace(getEnglish, "邮件", " mail ")

    getEnglish = Replace(getEnglish, "域名", " domain ")

    getEnglish = Replace(getEnglish, "测试", " test")

    getEnglish = Replace(getEnglish, "演示", " demo ")

    getEnglish = Replace(getEnglish, "音乐", " music ")

    getEnglish = Replace(getEnglish, "笑话", " joke ")

    getEnglish = Replace(getEnglish, "产品", " product ")

    getEnglish = Replace(getEnglish, "留言", " message ")

    getEnglish = Replace(getEnglish, "反馈", " freedback ")

    getEnglish = Replace(getEnglish, "评论", " comment ")

    getEnglish = Replace(getEnglish, "推荐", " commend ")

    getEnglish = Replace(getEnglish, "共享", " share ")

    getEnglish = Replace(getEnglish, "资源", " resource ")

    getEnglish = Replace(getEnglish, "插件", "
plugins ")

    getEnglish = Replace(getEnglish, "本本", " notebook ")

    getEnglish = Replace(getEnglish, "电脑", " computer ")

    getEnglish = Replace(getEnglish, "系统", " system ")

    getEnglish = Replace(getEnglish, "学校", " school ")

    getEnglish = Replace(getEnglish, "无忧", " 5u ")

    getEnglish = Replace(getEnglish, "工作", " job ")

    getEnglish = Replace(getEnglish, "信息", " info ")

    getEnglish = Replace(getEnglish, "娱乐", " ent ")

    getEnglish = Replace(getEnglish, "汽车", " car ")

    getEnglish = Replace(getEnglish, "手机", " mobile ")

    getEnglish = Replace(getEnglish, "网络", " network ")

    getEnglish = Replace(getEnglish, "老板", " boss ")

    getEnglish = Replace(getEnglish, "狗", " dog ")

    getEnglish = Replace(getEnglish, "电视", " tv ")

    getEnglish = Replace(getEnglish, "电影", " movie ")

End Function

然后就是最关键的函数pinyin(byval chinese) 他将中文转换到拼音

以下为引用的内容:

function pinyin(byval chinese)

    chinese = replace(chinese, "/", ""): chinese = replace(chinese, "\", "")

    chinese = replace(chinese, "*", ""): chinese = replace(chinese, "]", "")

    chinese = replace(chinese, "[", ""): chinese = replace(chinese, "}", "")

    chinese = replace(chinese, "{", ""): chinese = replace(chinese, "'", "")

    chinese = getEnglish(chinese) '在这里使用getEnglish先将特殊词语转换

    dim pinyinstr, istr, iIsCn, IsCn

    dim pinyinconn, rs, i, x

    '在这里打开拼音库

    '你也可以将拼音库的并入你的程序数据库里.

    on error resume next

    set pinyinconn = server.createobject("Adodb.connection")

    pinyinconn.open "Provider=Microsoft.Jet.OLEdb.4.0;Data Source=" & server.mappath("pinyin.Asp")

    if err then pinyin = "": set pinyinconn = nothing: exit
function

    IsCn = true

    for i = 1 to len(chinese)

    iIsCn = IsCn '
获取上次是不是中文的值

    istr = Mid(chinese, i, 1)

    x = Asc(istr)

    if (x >= 65 and x <= 90) or (x >= 97 and x <= 122) or (x >= 48 and x <= 57) or istr = " " then

        IsCn = false ' 这些是英文,数字(保留字符),不改动

        if istr = " " then istr = "-"

    else

        set rs = pinyinconn.execute("select Top 1 [pinyin] From [pinyin] Where [content] like '%" & istr & "%';")

        if not rs.eof then

        istr = lcase(rs(0)): IsCn = true   ' 中文

        else

        IsCn = false

        if istr = " " then istr = "-" else istr = "" ' 将空格转换成-,如果是其他字符则清除

        end if

        rs.close: set rs = nothing

    end if

    if iIsCn = IsCn then pinyinstr = pinyinstr & istr else pinyinstr = pinyinstr & "-" & istr

    pinyinstr = replace(pinyinstr, "--", "-")

    pinyinstr = replace(pinyinstr, "__", "_")

    next

    if right(pinyinstr, 1) = "-" then pinyinstr = left(pinyinstr, len(pinyinstr) - 1)

    if right(pinyinstr, 1) = "_" then pinyinstr = left(pinyinstr, len(pinyinstr) - 1)

    if left(pinyinstr, 1) = "-" then pinyinstr = right(pinyinstr, len(pinyinstr) - 1)

    if left(pinyinstr, 1) = "_" then pinyinstr = right(pinyinstr, len(pinyinstr) - 1)

    pinyinconn.close

    set pinyinconn = nothing

    pinyin = trim(pinyinstr)

end Function

使用方法:

以下为引用的内容:

response.write pinyin("中国你好,欢
迎来到中国!")

  这种方法,转换成的拼音格式文件名非常友好,对SEO方面有要求的小程们,可以试试的。

  pinyin数据库下载烦恼's blog

时间: 2024-09-11 06:09:28

ASP汉字转拼音 支持自定义特殊词语的相关文章

ASP汉字转拼音函数的方法

 <%  'ASP汉字转拼音函数 Set d = CreateObject("Scripting.Dictionary")  d.add "a",-20319  d.add "ai",-20317  d.add "an",-20304  d.add "ang",-20295  d.add "ao",-20292  d.add "ba",-20283  d.add

ASP汉字转拼音函数

函数|汉字|拼音 <% Set d = CreateObject("Scripting.Dictionary") d.add "a",-20319 d.add "ai",-20317 d.add "an",-20304 d.add "ang",-20295 d.add "ao",-20292 d.add "ba",-20283 d.add "bai&q

MySQL中文汉字转拼音的自定义函数和使用实例(首字的首字母)_Mysql

fristPinyin : 此函数是将一个中文字符串的第一个汉字转成拼音字母 (例如:"中国人"->Z) 复制代码 代码如下: CREATE FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8BEGIN    DECLARE V_RETURN VARCHAR(255);    SET V_RETURN = ELT(INTERVAL(CONV(HEX(left(CONVERT(P

asp 汉字转换拼音程序

以下是源代码: <% Set d = CreateObject("Scripting.Dictionary") d.add "a",-20319 d.add "ai",-20317 d.add "an",-20304 d.add "ang",-20295 d.add "ao",-20292 d.add "ba",-20283 d.add "bai&qu

C#汉字转拼音(支持多音字)

原文 C#汉字转拼音(支持多音字) 阅读目录 首先在nuget引用对应的包 简单的demo 汉字转拼音类封装 源码分享 之前由于项目需要,中间需要一个汉字转拼音和首拼的功能来做查询,感觉这种功能基本已经成熟化了,于是查找了相关的代码,首先引入眼帘的是下面两篇文章 1.C# 汉字转拼音(支持GB2312字符集中所有汉字) 2.[干货]JS版汉字与拼音互转终极方案,附简单的JS拼音输入法 感谢两位博主,写的比较全也很详细,都有提供源码,大家可以参考下. 由于考虑到接口的需要,于是参考了 第一篇,文章

asp.net 汉字转换拼音及首字母实现代码_实用技巧

Default.aspx页面 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:

jquery select 插件 支持汉字、拼音、英文

  <!doctype > <html > <head> <meta http-equiv="content-type" content="text/html; charset=gb2312" /> <title>jquery 超级select 插件 v3.0.0.0插件</title> </head> <script type="text/网页特效" sr

支持生僻字且自动识别utf-8编码的php汉字转拼音类_php技巧

拼音类文件py_class.php源码如下: <?php class py_class{ function py_class(){ $this -> pinyin = array( "a" => array(59371, 41648, 50400, 33157, 41392, 18661, 47599), "ai" => array(19697, 32178, 35504, 36856, 20712, 25068, 28663, 26608,

asp.net汉字转换拼音之首字母转换

index.aspx的首页 这个页面主要是用来给用户提交数据的.  代码如下 复制代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN