态度决定高度、企图决定版图、格局决定结局

导航

编码转换

设计页面,写Asp.Net代码真是比较痛苦的事情。不过如果能实现某个效果,还是挺高兴的。今天要替换掉所有的服务器日历控件,改用javascript编写。网络上,这样的日历太多了,选择其中一个。开始一切似乎挺正常,配置,调用,完成!但是跑起来才发现,完蛋了!都是乱码! 问题很明显,编码问题,需要从GBK转到UTF8。GOOGLE下,出来了:

javascript||gbk2utf8

<script>
function UTF8UrlEncode(input)
{
        var output = "";
        var currentChar = '';
        for(var counter = 0; counter < input.length; counter++)
        {
                currentChar = input.charCodeAt(counter);
                if((48 <= currentChar) && (currentChar <= 57))
                        output = output + input.charAt(counter);
                else if((65 <= currentChar) && (currentChar <= 90))
                        output = output + input.charAt(counter);
                else if((97 <= currentChar) && (currentChar <= 122))
                        output = output + input.charAt(counter);
                else
                        output =  output + UTF8UrlEncodeChar(currentChar);
        }
        return output;
}
function UTF8UrlEncodeChar(input)
{
        if(input <= 0x7F) return "%" + input.toString(16);
        var leadByte = 0xFF80; var hexString = ""; var leadByteSpace = 5;
        while(input > (Math.pow(2, leadByteSpace + 1) - 1))
        {
                hexString = "%" + ((input & 0x3F) | 0x80).toString(16) + hexString;
                leadByte = (leadByte >> 1);
                leadByteSpace--;
                input = input >> 6;
        }
        return ("%" + (input | (leadByte & 0xFF)).toString(16) + hexString).toUpperCase();
}
//下面是测试
document.write("<a href=http://www.google.com/search?q="+UTF8UrlEncode("谷歌")+">go</a>");
</script>

将代码中中文转化下,应该可以了吧?跑起来!天啊 ,怎么还不行?js让人真头疼!

联系下控件的作者,简单聊了几句。感谢阿!一语道破天机:我的开发环境就在gbk下,生成的js文件也是这样的编码!

哦,明白了!动手:打开js文件,另存!完成了!

posted on 2007-01-25 17:31  flyingchen  阅读(280)  评论(0编辑  收藏  举报