编码转换
设计页面,写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 阅读(282) 评论(0) 编辑 收藏 举报