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
}
查看全文
相关阅读:
【JavaScript数据结构系列】04-优先队列PriorityQueue
【JavaScript数据结构系列】02-栈Stack
【JavaScript数据结构系列】01-数组Array
【JavaScript数据结构系列】00-开篇
2019个人年度总结
批处理·命令行中常用的操作
flutter 环境出错后排查
[图解算法]线性时间选择Linear Select——<递归与分治策略>
阿里云轻量应用服务器——配置MySQL远程连接(踩坑,LAMP+CentOS)
[知识复习] C语言文件读写
原文地址:https://www.cnblogs.com/think/p/305590.html
最新文章
网络修复:连上网却打不开任何网页
Python学习笔记(八)——正则表达式
Python学习笔记(七)——魔法方法
Python 3.3 IDLE 删除键出现空格卡顿
Python学习笔记(六)——类和对象
Python学习笔记(五)——异常处理
Python学习笔记(四)——文件永久存储
docker iotop :OSError: Netlink error: No such file or directory
使用Linux脚本更新Weblogic部署的应用程序
短文本分析----基于python的TF-IDF特征词标签自动化提取
热门文章
CentOS7.2安装Weblogic12c出现的问题
Linux系统中查询发行版本号以及内核版本的命令总结
Save results to different files when executing multi SQL statements in DB Query Analyzer 7.01
Docker容器时间与宿主机时间不一致
Docker Volume 之权限管理(一)
DB 查询分析器7.01 新增的保存执行结果到多个文件功能
概率分布的转换
【JavaScript数据结构系列】05-链表LinkedList
【JavaScript数据结构系列】03-队列Queue
【JavaScript数据结构系列】06-双向链表DoublyLinkedList
Copyright © 2011-2022 走看看