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
}
查看全文
相关阅读:
css代码建议
分别获取json对象的键值
d3.time.format时间模式
d3.js学习笔记 -- 尺度
解决slideDown()、slideUp()执行结束后才执行下一次,导致鼠标离开后很久动画依然在执行的问题
正则表达式
href="#"与href="javascript:void(0)"的区别
jQuery手动触发事件
ajax请求超时
模态框遮罩层,兼容IE
原文地址:https://www.cnblogs.com/think/p/305590.html
最新文章
【Springboot】如何将tomcat替换为jboss
【Springboot】Springboot自动装配原理
【Java基础】ConcurrentHashMap为什么不能存null键和null值
【Springboot项目启动异常】项目启动,数据库连接异常
【Spring】 Spring如何解决循环依赖的问题?
【负载均衡】四层负载均衡与七层负载均衡
Docker怎么实现容器之间的通信?
Saas多租户架构怎样实现数据隔离?
Flyway-数据库迁移工具
【并发编程】线程池是否需要手动关闭吗?以Hutool中的线程池为例
热门文章
轮播图方法一,把每个slider-item看成一个对象进行轮播
href = '' 表示刷新当前页面
直接获取任意对象的 $('.xx').css('x') 值都是0
既然 transform 不适用于某些内联元素,那咱们就把这些元素变成 inline-block 或 block 就行了。
组件化网页开发 步骤三:一个高大上的思想,开发电商网页 搜索功能组件化
引用其他服务器搜索页 和 获取搜索数据
引用其他网站的搜索页
导航菜单,showHide插件 + Dropdown 下拉对象
前端常用插件 集合
jquery 使用off移除事件 使用one绑定一次事件,on绑定事件后触发多次相同的事件的异常
Copyright © 2011-2022 走看看