zoukankan
html css js c++ java
帮助解决网页和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
}
查看全文
相关阅读:
设备树实践
设备树实例解析
设备树语法
设备树基本概念
设备树中#address-cells和#size-cells作用
Linux设备驱动详解 宋宝华 硬件基础
jffs2镜像制作
ltp-ddt eth_iperf_tcp iperf dualtest遇到的问题
shell 函数传递参数的几种方式
windows logstash配置
原文地址:https://www.cnblogs.com/think/p/305590.html
最新文章
您的加密USB驱动器是否安全?黑客又是如何攻破的?
IBM和DoE推出世界上最快的超级计算机
苹果推出了AI手机,打造一款高度个性化的设备
全球的IPv6部署急剧增加,但中国几乎没有一个地方部署?
谷歌浏览器存严重漏洞,黑客能够劫持和注入攻击
最新Zip压缩文件漏洞,黑客可以触发目录遍历攻击
Redis服务器中有75%受到恶意软件感染
苹果的AR赌注仍然有很多需要证明的
5G如何让智能手机再次变得丑陋?
我们为什么选择Ceph来建立块存储
热门文章
弹性盒子
JS中typeof的用法
html5拖动监听
Viewport详解
overflow:hidden的清除浮动效果
Spring IOC实现配置bean和实例
Msql 给结果拼接字符串
【转】Servlet 九大对象和四个作用域
Spring bean工厂配置头文件
linux下的软链接与硬链接
Copyright © 2011-2022 走看看