• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASP UTF-8页面乱码+GB2312转UTF-8 +生成UTF-8格式的文件(编码)第1/2页
    最好的方法:
    先说一下基本的东西:
    %@ codepage=65001%>UTF-8
    %@ codepage=936%>简体中文
    %@ codepage=950%>繁体中文
    %@ codepage=437 %>美国/加拿大英语
    %@ codepage=932 %>日文
    %@ codepage=949 %>韩文
    %@ codepage=866 %>俄文

    codepage指定了IIS按什么编码读取传递过来的串串(表单提交,地址栏传递等)。

    出乱码的原因也就是网站要整合的时候模块编码不相同引起的。
    就像我的博客相同,整合的时候都会出这个问题,因为BLOG是Utf-8的,
    近来很多网友都在为这个问题咨询,我尝试了很多种方法。
    最方便的方法如下:
    不要转换任何模块网页的编码该utf-8的还是utf-8,该Gb22312的还是Gb2312
    在Utf-8模块的包文档(如conn.asp,但是要注意conn.asp必须是在第一行调用)最前面加上
    %@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    %Session.CodePage=65001%>
    在GB2312模块的包文档最前面加上
    %@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
    %Session.CodePage=936%>
    其他编码的类推。
    ASP中汉字与UTF-8的互相转换
    '=============汉字转换为UTF-8==================

    function chinese2unicode(Str)
    for i=1 to len(Str)
    Str_one=Mid(Str,i,1)
    Str_unicode=Str_unicodechr(38)
    Str_unicode=Str_unicodechr(35)
    Str_unicode=Str_unicodechr(120)
    Str_unicode=Str_unicode Hex(ascw(Str_one))
    Str_unicode=Str_unicodechr(59)
    next
    chinese2unicode = Str_unicode
    end function



    '=============UTF-8转换为汉字==================

    function UTF2GB(UTFStr)
    for Dig=1 to len(UTFStr)
    if mid(UTFStr,Dig,1)="%" then
    if len(UTFStr) >= Dig+8 then
    GBStr=GBStr ConvChinese(mid(UTFStr,Dig,9))
    Dig=Dig+8
    else
    GBStr=GBStr mid(UTFStr,Dig,1)
    end if
    else
    GBStr=GBStr mid(UTFStr,Dig,1)
    end if
    next
    UTF2GB=GBStr
    end function


    function ConvChinese(x)
    A=split(mid(x,2),"%")
    i=0
    j=0

    for i=0 to ubound(A)
    A(i)=c16to2(A(i))
    next

    for i=0 to ubound(A)-1
    DigS=instr(A(i),"0")
    Unicode=""
    for j=1 to DigS-1
    if j=1 then
    A(i)=right(A(i),len(A(i))-DigS)
    Unicode=Unicode A(i)
    else
    i=i+1
    A(i)=right(A(i),len(A(i))-2)
    Unicode=Unicode A(i)
    end if
    next

    if len(c2to16(Unicode))=4 then
    ConvChinese=ConvChinese chrw(int("H" c2to16(Unicode)))
    else
    ConvChinese=ConvChinese chr(int("H" c2to16(Unicode)))
    end if
    next
    end function

    function c2to16(x)
    i=1
    for i=1 to len(x) step 4
    c2to16=c2to16 hex(c2to10(mid(x,i,4)))
    next
    end function

    function c2to10(x)
    c2to10=0
    if x="0" then exit function
    i=0
    for i= 0 to len(x) -1
    if mid(x,len(x)-i,1)="1" then c2to10=c2to10+2^(i)
    next
    end function

    function c16to2(x)
    i=0
    for i=1 to len(trim(x))
    tempstr= c10to2(cint(int("h" mid(x,i,1))))
    do while len(tempstr)4
    tempstr="0" tempstr
    loop
    c16to2=c16to2 tempstr
    next
    end function

    function c10to2(x)
    mysign=sgn(x)
    x=abs(x)
    DigS=1
    do
    if x2^DigS then
    exit do
    else
    DigS=DigS+1
    end if
    loop
    tempnum=x

    i=0
    for i=DigS to 1 step-1
    if tempnum>=2^(i-1) then
    tempnum=tempnum-2^(i-1)
    c10to2=c10to2 "1"
    else
    c10to2=c10to2 "0"
    end if
    next
    if mysign=-1 then c10to2="-" c10to2
    end function

    GB2312转UTF-8

    '个人代码风格注释(变量名中第一个小写字母表表示变量类型)
    'i:为Integer型;
    's:为String;
    Function U2UTF8(Byval a_iNum)
    Dim sResult,sUTF8
    Dim iTemp,iHexNum,i

    iHexNum = Trim(a_iNum)

    If iHexNum = "" Then
    Exit Function
    End If

    sResult = ""

    If (iHexNum 128) Then
    sResult = sResult iHexNum
    ElseIf (iHexNum 2048) Then
    sResult = ChrB(H80 + (iHexNum And H3F))
    iHexNum = iHexNum \ H40
    sResult = ChrB(HC0 + (iHexNum And H1F)) sResult
    ElseIf (iHexNum 65536) Then
    sResult = ChrB(H80 + (iHexNum And H3F))
    iHexNum = iHexNum \ H40
    sResult = ChrB(H80 + (iHexNum And H3F)) sResult
    iHexNum = iHexNum \ H40
    sResult = ChrB(HE0 + (iHexNum And HF)) sResult
    End If

    U2UTF8 = sResult
    End Function

    Function GB2UTF(Byval a_sStr)
    Dim sGB,sResult,sTemp
    Dim iLen,iUnicode,iTemp,i

    sGB = Trim(a_sStr)
    iLen = Len(sGB)
    For i = 1 To iLen
    sTemp = Mid(sGB,i,1)
    iTemp = Asc(sTemp)

    If (iTemp>127 OR iTemp0) Then
    iUnicode = AscW(sTemp)
    If iUnicode0 Then
    iUnicode = iUnicode + 65536
    End If
    Else
    iUnicode = iTemp
    End If

    sResult = sResult U2UTF8(iUnicode)
    Next

    GB2UTF = sResult
    End Function

    '调用方法
    Response.BinaryWrite(GB2UTF("中国人"))
    12下一页阅读全文
    您可能感兴趣的文章:
    • 将字符串转换成gb2312或者utf-8编码的参数(js版)
    • php实现utf-8和GB2312编码相互转换函数代码
    • UTF-8 GBK UTF8 GB2312 之间的区别和关系介绍
    • PHP字符编码问题之GB2312 VS UTF-8解决方法
    • VBS实现GB2312,UTF-8,Unicode,BIG5编码转换工具
    • PHP 解决utf-8和gb2312编码转换问题
    • unicode utf-8 gb18030 gb2312 gbk各种编码对比
    • ASP中Utf-8与Gb2312编码转换乱码问题的解决方法 页面编码声明
    • MSSQL转MYSQL,gb2312转utf-8无乱码解决方法
    • PHP iconv 解决utf-8和gb2312编码转换问题
    • 用VBS实现的批量gb2312转utf-8,支持拖动
    • 用javascript实现gb2312转utf-8的脚本
    • [转]ASP实现关键词获取(各搜索引擎,GB2312及UTF-8)
    • UTF-8转GB2312函数
    • utf-8编码转换成gb2312
    • 将编码从GB2312转成UTF-8的方法汇总(从前台、程序、数据库)
    上一篇:ASP运行在IIS6 500错误解决办法
    下一篇:Asp生成RSS的类_给网站加上RSS第1/2页
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ASP UTF-8页面乱码+GB2312转UTF-8 +生成UTF-8格式的文件(编码)第1/2页 ASP,UTF-8,页面,乱码,+GB2312,