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
}
查看全文
相关阅读:
范德蒙矩阵相关
bat运行exe程序
github 用token远程连接(三)
为什么将样本方差除以N1?
Git commit格式 详解(二)
C++中this与*this的区别
函数末尾加入const的作用
git 使用小补充(四)
人工智能 机器学习
机器学习分类
原文地址:https://www.cnblogs.com/think/p/305590.html
最新文章
sql中把varchar类型转换为int型然后进行排序
Oracle死锁问题的解决
真机测试报错ERROR/AndroidRuntime: java.lang.RuntimeException: setParameters failed解决办法
django创建第一个子文件夹
android AlertDialog
android的listview的addheaderView总是出现空指针的错误
python爬网页中文乱码问题
python正则
python中的网页标签等字符处理
【原创】jQuery1.8.2源码解析之jQuery.event
热门文章
【原创】jQuery插件之图片轮播
【原创】backbone0.9.2源码解析之extend
mac mamp pro提示 Either you did not provide the necessary admin credentials or the MAMP PRO package could not be initialized correctly……
mac版 mcrypt 安装过程记录
Memcached 服务器端命令
csslineargradient()渐变相关
Memcached telnet端命令
ubuntu 下配置文件目录
php无法连接redis问题
jQuery 控制input及select的应用
Copyright © 2011-2022 走看看