编码/解码十六进制为 utf-8 字符串
Encode/decode hex to utf-8 string
在接受所有 UTF-8 字符(包括希腊字符)的 Web 应用程序上工作 以下是我想转换为十六进制的字符串。
以下是在我当前代码中不起作用的不同语言字符串
ЫЙБПАРО
Εγκυκλοπαίδεια
éaös
Größe
Größe
以下是下面提到的javascript函数的十六进制转换
42b41941141f41042041e
3953b33ba3c53ba3bb3bf3c03b13af3b43b53b93b1
e961f673
4772c3192c2b6c3192c217865
4772f6df65
Javascript函数将上面的字符串转换为十六进制
function encode(string) {
var str= "";
var length = string.length;
for (var i = 0; i < length; i++){
str+= string.charCodeAt(i).toString(16);
}
return str;
}
在这里它没有给出任何转换错误,但在 java 端我无法解析以下 java 代码用于转换十六进制的此类字符串
public String HexToString(String hex){
StringBuilder finalString = new StringBuilder();
StringBuilder tempString = new StringBuilder();
for( int i=0; i<hex.length()-1; i+=2 ){
String output = hex.substring(i, (i + 2));
int decimal = Integer.parseInt(output, 16);
finalString.append((char)decimal);
tempString.append(decimal);
}
return finalString.toString();
}
它在解析十六进制字符串上方时抛出错误,给出解析异常。向我建议解决方案
Javascript使用16位Unicode字符,因此charCodeAt
可能会返回0到65535之间的任何数字。当你把它编码成十六进制时,你会得到从 1 到 4 个字符的字符串,如果你只是连接这些,对方就无法找出编码了哪些字符。
可以通过向编码字符串添加分隔符来解决此问题:
function encode(string) {
return string.split("").map(function(c) {
return c.charCodeAt(0).toString(16);
}).join('-');
}
alert(encode('größe Εγκυκλοπαίδεια 维'))
相关文章:
- 编码/解码十六进制为 utf-8 字符串
- 如何通过jQuery $.load()实用程序函数获取PHP将utf-8字符串传递给JavaScript
- 正确的正则表达式来查找和替换转义的 UTF-8 字符串
- 如何直接在 JavaScript 中将字符串编码为 UTF-8
- 在 JavaScript 中将 UTF-8 字符串转换为 Windows-1250
- 使用 jquery 将 UTF-8 字符串发布到 servlet
- 相当于Java的URLEncoder.encode(“字符串”、“UTF-8”)的JavaScript
- 如何将utf-16缓冲区与字符串进行比较
- 在javascript中连接utf字符串时出错
- 如何在PHP中将Javascript字符串编码为Unicode并将其解码为utf-8
- 如何在javascript中制作自己的字符串,就像我在键盘上点击ALT代码一样(UTF-8)
- 如何在javascript中将utf-8字符串转换为unlencoded win1251
- 将字符串转换为UTF-16(以及更多格式化)
- 在不破坏UTF-8字符串的情况下获取子字符串
- 在JavaScript中使用encodeURI()和escape()来处理utf-8字符串
- 如何将此字符串转换为普通的utf-8字符串?
- 连接UTF-8字符串
- 如何从十六进制编码的字符串解码为UTF-8字符串
- 附加UTF-8字符串作为ID
- 用户名和电子邮件的UTF-8字符串验证