Jam*_*ite 2 asp.net unicode internationalization codepages
我有一个WebForm搜索页面,偶尔会有来自国际访问者的点击.当他们输入文本时,它看起来是纯ASCII az,0-9但是它们以粗体打印而我的"是这个文本"逻辑无法处理输入.在ASP.NET中有没有简单的方法将等同于AZ,0-9的Unicode字符转换为普通的旧文本?
你正在获得所谓的"全角形式"的角色.在Unicode中,这些在代码点U + FF01到U + FF5E处编码.要从它们获取ASCII代码点(U + 0021到U + 007E),您必须获取它们的代码点并从中减去(0xFF01 - 0x0021).
ASCII:http:
//unicode.org/charts/PDF/U0000.pdf全宽表格:http://unicode.org/charts/PDF/UFF00.pdf
我不会说ASP.NET,但在Java中,代码看起来像这样:
String decodeFullwidth(String s) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (0xFF01 <= c && c <= 0xFF5E) {
sb.append((char) (c - (0xFF01 - 0x0021)));
} else {
sb.append(c);
}
}
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1386 次 |
| 最近记录: |