找回密码
 加入
搜索
查看: 5162|回复: 9

在线求中文转GB2312编码的urlencode函数

[复制链接]
发表于 2009-9-12 21:36:21 | 显示全部楼层 |阅读模式
本帖最后由 sunafter 于 2009-9-13 00:19 编辑

只搜到一个中文转UTF8的函数,但是要用到中文转GB2312编码的函数,本人比较菜,写不出来,求大侠告知!
比如http://www.baidu.com/s?wd=%C4%E3%BA%C3
就是百度搜索你好,我想要的函数就是一个能将“你好”转换成“%C4%E3%BA%C3”
感谢afan大侠的帮助,问题已经解决!
 楼主| 发表于 2009-9-12 22:35:58 | 显示全部楼层
急求啊,谢谢!!!
 楼主| 发表于 2009-9-12 22:37:34 | 显示全部楼层
这是一个将中文转换成UTF8的函数,我想要转换成ANSI(gb2312)编码,求啊!
Func _UnicodeURLEncode($UnicodeURL)        ;==>_UnicodeURLEncode
    Local $UnicodeBinaryLength,$UnicodeBinary,$UnicodeBinary2
        $UnicodeBinary = StringToBinary ($UnicodeURL,4)
    $UnicodeBinary2 = StringReplace($UnicodeBinary, '0x', '', 1)
    $UnicodeBinaryLength = StringLen($UnicodeBinary2)
    Local $EncodedString,$UnicodeBinaryChar,$EncodedString
    For $i = 1 To $UnicodeBinaryLength Step 2
        $UnicodeBinaryChar = StringMid($UnicodeBinary2, $i, 2)
        If StringInStr("$-_.+!*'(),;/?:@=&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", BinaryToString ('0x' & $UnicodeBinaryChar,4)) Then
            $EncodedString &= BinaryToString ('0x' & $UnicodeBinaryChar)
        Else
            $EncodedString &= '%' & $UnicodeBinaryChar
        EndIf
    Next
    Return $EncodedString
EndFunc
发表于 2009-9-12 22:43:27 | 显示全部楼层
非要函数吗?那我整一个试试
发表于 2009-9-12 23:12:40 | 显示全部楼层
MsgBox(0, 0, cn2ansi('你好'))

Func cn2ansi($wchar)
        Dim $kg = ''
        For $i = 1 To StringLen($wchar)
                $kg &= ' '
        Next
        Local $wz = StringToBinary($wchar & $kg), $anstr = '%'
        For $ii = 3 To StringLen($wz) Step 2
                $anstr &= BinaryToString(StringMid($wz, $ii, 2)) & '%'
        Next
        Return StringTrimRight($anstr, 1)
EndFunc   ;==>cn2ansi

评分

参与人数 1金钱 +40 贡献 +30 收起 理由
sxd + 40 + 30 UDF函数变量还能写的更丑点么 O(∩_∩)O

查看全部评分

 楼主| 发表于 2009-9-13 00:17:49 | 显示全部楼层
MsgBox(0, 0, cn2ansi('你好'))

Func cn2ansi($wchar)
        Dim $kg = ''
        For $i = 1 To StringLen($wchar)
                $kg &= ' '
        Next
        Local $wz = StringToBinary($wchar & $kg), $anstr = '%'
        For $ii = 3 To St ...
afan 发表于 2009-9-12 23:12

膜拜啊,感谢!!!!
发表于 2009-9-13 03:12:06 | 显示全部楼层
本帖最后由 bing614 于 2009-9-13 03:15 编辑

此函数AU3已经有了。
#include <INet.au3>
MsgBox(0, "",  _INetExplorerCapable("中国人"))
 楼主| 发表于 2009-9-13 03:29:07 | 显示全部楼层
此函数AU3已经有了。#include
MsgBox(0, "",  _INetExplorerCapable("中国人"))
bing614 发表于 2009-9-13 03:12

结果不正确啊,少了一部分
发表于 2009-9-13 05:58:07 | 显示全部楼层
#include <INet.au3>

MsgBox(0, "",  _INetExplorerCapable("中国人"))
发表于 2015-11-26 17:06:16 | 显示全部楼层
afan 发表于 2009-9-12 23:12



    这为啥要搞个$kg,后面多了那么多空格?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-26 21:05 , Processed in 0.076644 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表