ASP的内码转换函数

 

这个函数可以用来转换不同语言的内码,下面的几段是我从类中摘下来的,可能会有小错,没有调试,相信大家要修复也很容易的,这个函数用处多多,可以很好地解决一些多语言的问题.

只要服务器上有安装对应的语言编码文件,即可以轻松转换内码

Codepage(CharSet,语言)
932(shift_jis,日文)
936(gb2312,简体中文)
949(EUC-KR,韩文)
950(Big5,繁体中文)
65001(UTF-8,UCS)

'******************************
'名称: Codein
'参数:strings(字符串),TCharSet(使用编码)
'返回值:转内码后的字符串
'作用:内码转换,需要Adodb.Stream支持
'创建时间:2007年11月10日
'******************************
Public Function Codein(strings,SCharSet,TCharSet)
dim tStm
strings=Str2Bin(strings,TCharSet)
Set tStm = Server.CreateObject ("ADODB.Stream")
tStm.Type = 1
tStm.Mode = 3
tStm.Open
tStm.Write strings
tStm.SaveToFile Server.MapPath("/temp_file"), 2'adSaveCreateOverWrite
dim p_CharSet_temp
p_CharSet=TCharSet
Codein = ReadFile("/temp_file")
'kks_fso.delfile("/data/template/temp_file") '删除文件操作,使用FSO
p_CharSet=p_CharSet_temp
End Function

 

附上Str2Bin和ReadFile

 

'******************************  
'名称: STR2Bbytes  
'参数:strings(二进制字符串),C_CharSet(使用编码)  
'返回值:网页内容(HTML)  
'作用:二进制编码转换函数优化版,需要Adodb.Stream支持  
'创建时间:2007年1月10日  
'******************************  
Public Function Str2Bin(strings,C_CharSet)  
'On Error Resume Next  
    dim stm_Str2Bin  
    set stm_Str2Bin=createObject("ADODB.Stream")   
    with stm_Str2Bin  
    .Type=2  
    .mode=3   
    .charSet=C_CharSet 
    .Open  
    .WriteText strings  
    .Position = 0  
    .type=1  
    Str2Bin=.Read  
    .flush    
    .Close  
    end with  
    set stm_Str2Bin=nothing  
  if Err then  
    Str2Bin=""
    Err.Clear  
  End if  
End Function
  
  
'******************************  
'名称: ReadFile  
'参数:filepath(载入文件的相对路径),p_CharSet(使用的字符集)  
'返回值:文件内容  
'作用:读取文件  
'创建时间:2007年1月10日  
'******************************  
Public Function ReadFile(filepath,p_CharSet)  
    On Error Resume Next  
    dim stm  
    set stm =server.createobject("ADODB.Stream")   
    stm.Type=1    '以本模式读取 (adSaveType )
    stm.mode=3    'adSavemode  
    stm.Charset = p_CharSet  
    stm.Open  
    stm.LoadFromFile Server.MapPath(filepath)  
  
  If Err.number <> 0 Then   
  Err.Clear  
  ReadFile = ""  
    Else  
  ReadFile = stm.ReadText  
    End If  
    stm.Close  
    set stm=nothing  
End Function

版权声明:
作者:Kiyo
链接:https://www.wkiyo.cn/html/2008-01/i542.html
来源:Kiyo's space
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>