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
}
查看全文
相关阅读:
npm registry
JS函数addEventListener的浏览器差异性封装
C# WinForm 异步执行耗时操作并将过程显示在界面中
在server 2008/2003中 取消对网站的安全检查/去除添加信任网站
SQL语句中将Datetime类型转换为字符串类型
未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序
当应用程序不是以 UserInteractive 模式运行时显示模式对话框或窗体是无效操作
TFS2012常见问题及解答
笔记《Hbase 权威指南》
读Java 804
原文地址:https://www.cnblogs.com/think/p/305590.html
最新文章
Java中String是不是引用传递?
Android 不能静态注册的广播
BroadcastReceiver 消息广播无法接收的原因 无Activity
无法启动ASP.NET状态服务 错误0x8007277a;无法加载或初始化请求的服务提供程序
未能加载类型
运行SubmitChanges()后,数据库的数据仍未更新
NTLDR is missing 文件丢失如何解决
解决Createjs 文本框在不同平台上,垂直方向上偏移错位的问题
IOS无法摇一摇,附完美解决文件。
长图批量分段裁剪工具 imgCutter,支持自定义裁剪高度
热门文章
精简TTF字体、FontPruner、汉字字体瘦身(非字蛛)
audioContext.decodeAudioData 返回null 错误
Android html5 控制video currentTime不准确,精确,解决办法。
课题:html5图像羽化(不规则区域羽化,feather,html5羽化)
13张图怎么排列?有意思
微信底部白条解决办法 授权白条
小程序打开web-view传参数注意事项
Node.JS 邮件发送模块 Nodemailer
MEANJS Yo Generator
MEANJS DOC
Copyright © 2011-2022 走看看