THIN-事繁勿慌,事闲勿荒,取象于钱,外圆内方
曲则全,缓应急!
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 285 文章- 3 评论- 3543
帮助解决网页和JS文件中的中文编码问题的小工具
在JS文件中直接写入一些双字节字符,有时会引发javascript编码错误,在DateChooser控件中就出现过这样的问题,现在一般的较安全的解决方法是把中文字符串转换成类似于"\u5c0f\u5bd2"这样的形式写到JS文件中,下面的代码就是实现双字节的字符和Big endian Unicode之间的相互转换。
/**/
///
<summary>
///
将双字节字符转化成能更好的在网页和JS中使用的BigEndianUnicode
///
</summary>
public
abstract
class
Class2
{
public
static
void
Main()
{
string
test
=
"
12,农民農民
"
;
string
entext
=
EncodingBigEndianUnicode(test);
WL(test);
WL(entext);
WL(DecodingBigEndianUnicode(entext));
RL();
}
public
static
string
DecodingBigEndianUnicode(
string
encodedString)
{
System.Text.RegularExpressions.Regex regUnicode
=
new
System.Text.RegularExpressions.Regex(
@"
\\u(?<1>[a-zA-Z0-9]{2})(?<2>[a-zA-Z0-9]{2})
"
);
System.Text.RegularExpressions.MatchCollection mc
=
regUnicode.Matches(encodedString);
string
s
=
string
.Empty;
foreach
(System.Text.RegularExpressions.Match m
in
mc)
{
byte
b1
=
byte
.Parse(m.Groups[
1
].Value,System.Globalization.NumberStyles.HexNumber);
byte
b2
=
byte
.Parse(m.Groups[
2
].Value,System.Globalization.NumberStyles.HexNumber);
s
+=
System.Text.Encoding.BigEndianUnicode.GetString(
new
byte
[]
{b1,b2}
);
}
return
s;
}
public
static
string
EncodingBigEndianUnicode(
string
text)
{
string
s
=
string
.Empty;
for
(
int
i
=
0
; i
<
text.Length ; i
++
)
{
string
s1
=
text.Substring(i,
1
);
byte
[] bs
=
System.Text.Encoding.BigEndianUnicode.GetBytes(s1);
s1
=
@"
\u
"
;
foreach
(
byte
b
in
bs)
{
string
s2
=
b.ToString(
"
x
"
);
if
(s2.Length
==
1
)
s2
=
"
0
"
+
s2;
s1
+=
s2;
}
s
+=
s1;
}
return
s;
}
Helper methods
#region
Helper methods
private
static
void
WL(
object
text,
params
object
[] args)
{
Console.WriteLine(text.ToString(), args);
}
private
static
string
RL()
{
return
Console.ReadLine();
}
private
static
void
Break()
{
System.Diagnostics.Debugger.Break();
}
#endregion
}
posted @ 2005-12-27 13:17
THIN
阅读(4704)
评论(12)
编辑
收藏
所属分类:
ASP.net
、
DHTML & Javascript
发表评论
回复
引用
查看
#1楼
2005-12-27 16:42 |
一帆(老鼠粮仓之路)
不要这样麻烦啊
在web.config里面直接写:
<globalization requestEncoding="GB2312" responseEncoding="GB2312" fileEncoding="GB2312"/>
就OK拉
回复
引用
查看
#2楼
[
楼主
]2005-12-27 17:05 |
THIN
呵呵,一帆所说只能说在自己的应用中可以这样做,要是你要把JS文件发布出去给别人用呢,还有,如果一个JS文件要给很多页面引用等等情况
回复
引用
查看
#3楼
2005-12-27 17:28 |
flower.b
不错。
我现在是调用js的时候指定编码格式
<script charset=utf-8 src=xxxx ......
这样如果调用页面是非UTF-8格式,也可以正常调用JS文件,不用对JS中内容做修改。
回复
引用
#4楼
2005-12-27 18:26 |
宝 玉 [未注册用户]
确实是终极解决方案
回复
引用
查看
#5楼
2005-12-27 19:49 |
NoMagic
这是个老问题啊,把js文件另存为UTF8格式难道不可以吗?
回复
引用
查看
#6楼
2005-12-27 23:14 |
猪头
<script src=ads_1.js charset="GB2312"></script>
这样不好吗?请指教,谢谢.
回复
引用
查看
#7楼
[
楼主
]2005-12-28 10:02 |
THIN
很好,沒什麼不好,只是如果部署更广时,如不是仅给自己的程序引用时……
回复
引用
#8楼
2006-02-14 15:45 |
wj [未注册用户]
很好,发现这里高手不少啊,一下看到了3种解决方案!好
回复
引用
查看
#9楼
2006-02-22 01:18 |
birdshome
直接用ms的script encode: SCRENC 就能把中文编码成这样子:)
回复
引用
#10楼
2006-06-17 16:34 |
偷米饭 [未注册用户]
楼主的办法太麻烦了..
<script charset=utf-8 src=xxxx ......
这种办法....不能通过xhtml1.0验证
<script src=ads_1.js charset="GB2312 ...
编码改成GB2312不好...还是用UTF-8比较好..
最好的办法就是用记事本打开js文件之后另存为
选项那里改成UTF-8类型...
回复
引用
#11楼
2007-11-27 21:35 |
534534 [未注册用户]
534534534534
回复
引用
#12楼
2008-07-19 21:15 |
bushy [未注册用户]
偷米饭 的这个办法是个终极的解决办法,我试过了,嗯,不错。。。
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
另存
打印
所属分类的其他文章:
·
用于生成网页、WAP、JS中文编码的Unicode编码工具
·
ASP.NET MVC Preview 2新特性
·
格式限定符中的转义
·
URL处理两个小工具方法
·
ASP.net在页面所有内容生成后、输出内容前对页面内容进行操作
·
帮助解决网页和JS文件中的中文编码问题的小工具
·
整合Web和Windows服务——按预定时间间隔运行ASP.NET代码 --作者:Andrew Needleman
·
ASP.NET中常用的优化性能的方法(转贴,Icyer收集整理)
·
(转贴)提高ASP.Net应用程序性能的十大方法
·
DateChooser新版修正版及源代码打包下载
最新IT新闻:
·
微软推新型搜索技术"BrowseRank"挑战谷歌
·
2008年7月26日IT博客精选
·
微软每年向Apache捐10万美元支持开源软件
·
AOL将关闭3个网站以降低成本 集中发力广告
·
谷歌网页索引数量突破1万亿个
博客园新闻频道
博客园首页
社区
公告
THIN(谭振林)
asp/asp.net MVP
大补社会科学阶段
控件开发团队
欢迎加入
我的著译
Favorite music
我的最新闪存
不疑处有疑--戒之
7-21 18:00
与我联系
发短消息
留言簿
给我留言
查看留言
我管理的小组
道不远人
我参加的小组
jQuery
女程序员之家
写书译书小组
Web技术联盟
我参与的团队
Design & Pattern团队(0/813)
.NET 控件与组件开发(3/1343)
上海.NET俱乐部(0/2154)
广州.NET俱乐部(1/1694)
深圳.NET俱乐部(0/1566)
成都.NET俱乐部(0/980)
湖南.NET俱乐部(0/594)
ASP.NET AJAX (Atlas)学习(0/1321)
MVP团队(0/498)
我的标签
赢在中国(1)
随笔分类
(305)
.net 2.0(7)
(rss)
AOP(5)
(rss)
ASP.net(37)
(rss)
asp.net 2.0(9)
(rss)
ASP.net server components and controls(38)
(rss)
DateChooser(12)
(rss)
DHTML & Javascript(31)
(rss)
English--Never go away(2)
(rss)
HR(6)
(rss)
Linq(1)
(rss)
My Books(6)
(rss)
OOP(6)
(rss)
Other(83)
(rss)
Reading notes(21)
(rss)
Regex expression (7)
(rss)
Smart Client
(rss)
SQL(6)
(rss)
SQL 2005(1)
(rss)
Virtual Studio 2005 (6)
(rss)
Web 2.0 concept(1)
(rss)
WinForms 编程(2)
(rss)
XML(2)
(rss)
财经(2)
(rss)
赢在中国(13)
(rss)
游戏(1)
(rss)
相册
2006@北京
2007
2008 FY
CSDN Hero 2007
File
Olympic
silence
teens
漂流
升职
收藏夹
(51)
.net 技术(14)
(rss)
Ajax technology and applications(2)
(rss)
CSDN Hero 2007(2)
(rss)
Database(1)
(rss)
DHTML + XMLHTTP(3)
(rss)
English(1)
(rss)
vs2005 & asp.net2.0(2)
(rss)
Web2.0 conception site(8)
(rss)
管理(4)
(rss)
其它(7)
(rss)
系列文章(4)
(rss)
站点架设(3)
(rss)
DotNet
Robin
包子
(rss)
旭日东升
Friends
维杰工控维修
电路板维修 数控机床维修 变频器维修 发电机维修
我的站点
我的新浪博客
管理、商业
搜索
积分与排名
积分 - 1013134
排名 - 11
最新评论
1. re: 控件开发团队纲要
OK
QQ:6054216 (Shawn Zhang)
2. re: 《天气与生活》修正近日总是显示数据有误的问题
还是提示 深圳 数据有误。 (Q)
3. re: 园子里有没有会设计签名的朋友^^
@THIN
为了 你的书。我苦练了好几天。就要出炉了
! (AlexLiu)
4. re: 控件开发团队纲要
申请加入.
帐号:paulo
QQ:279947695
C#, (paulo)
5. re: 帮助解决网页和JS文件中的中文编码问题的小工具
偷米饭 的这个办法是个终极的解决办法,我试过了,嗯,不错。。。 (bushy)
6. re: prototype.js 1.4版开发者手册(强烈推荐)
不错的支持,正在找此代码!!
顺便AD一下
(美眉哥哥时尚秀)
7. re: 控件开发团队纲要
msn:whua2008_artwind@hotmail.com (hua11)
8. re: 今天你写控件了吗?----ASP.net控件开发系列之(一)开篇
仁渣兄绝对是我心中少有的高手...其它的马屁就不说了
另外我也想学学做控件 (陈十陵a)
9. re: Prototype.js 1.4中文使用手册PDF版下载
i love you (sdf)
10. re: 应用WEB标准进行网站设计--《网站重构》读书笔记
www.jhl-bbq.com
很垃圾的东东,还拿来眩,sb一条。 (Fireman_duck)
阅读排行榜
1. prototype.js 1.4版开发者手册(强烈推荐) (121912)
2. “图片变幻显示控件”发布(51612)
3. 博客园控件开发团队成立以来第一个控件发布+源码公开!!!(14438)
4. Prototype.js 1.4中文使用手册PDF版下载(13949)
5. 惊喜:vs2005 和 msdn 中文版 已经提供Subscriber 下载,MSDN全球订户可以下中文版爽了(12751)
6. Hashtable,挺爽的一个东西,大家都用烂了吧,我再画蛇添足一下。(11606)
7. SQL Server中也用格式字符串定制日期转换为字符串(9902)
8. 纯脚本搞掂DataGrid表表头不动,表身滚动。(9755)
9. .net中的正则表达式使用高级技巧 (一)(9589)
10. 今天你写控件了吗?----ASP.net控件开发系列之(二)(9357)
评论排行榜
1. 控件开发团队纲要(455)
2. 不仅仅是开发控件--《道不远人--深入解析ASP.NET 2.0控件开发》作者序(153)
3. prototype.js 1.4版开发者手册(强烈推荐) (136)
4. 摇滚你的页面。Free:RockUControl控件发布,开源:RevealTransitionImage(130)
5. 收到《道不远人--深入解析ASP.NET 2.0控件开发》样书 (面市时间、价格、目录、推荐序)(130)
6. Prototype.js 1.4中文使用手册PDF版下载(97)
7. 博客园控件开发团队成立以来第一个控件发布+源码公开!!!(88)
8. 献给大家的新年礼物,同时祝大家新年愉快 :)(67)
9. 《天气与生活》修正近日总是显示数据有误的问题(67)
10. DateChooser控件发布ASP.NET 2.0新版(我的ASP.NET 2.0控件开发书的第二个阶段项目)[请大家一定注意版本的更新,下载最新版](60)
60天内阅读排行
1. 把苦难装在心里--《赢在中国》(2008-05-27)(2825)
2. 分封诸侯--《赢在中国》(2008-06-03)(2145)
3. 人肉搜索利大于弊?(993)
4. 盛大游戏式管理,什么时候能管理游戏式?^o^(864)
5. 唐僧晒书(378)