我希望能为解码提供一些帮助。
给定参数:\ u00c4(真实密钥Ä)
密钥包含在一个名为:reboundContent [2] [id](\ u00c4)
的参数中 从数据库中读取reboundContent [2] [id]。
接下来我尝试了以下:decodeURI(reboundContent [2] [id]),但这不起作用。
如果我创建一个新字符串并传入参数,一切都很完美,但我不能给出该参数。
那太疯狂了。
提前感谢您的帮助!
答案 0 :(得分:1)
根据您的问题和可能的解决方案,似乎包含\ u00c4的字符串实际上包含6个字符“\”,“u”,“0”,“0”,“c”和“4”。< / p>
为了将其转换为unicode字符,它意味着表示,一种简单的方法是将其包装在引号中并使用JSON.parse:
var parsedString = JSON.parse('"' + originalString + '"');
//Set string to "\u00c4", literally.
//Note that the backslash is escaped
//with a preceding backslash
var string = "\\u00c4";
//check string
console.log(string); // \u00c4
//check string length
console.log(string.length); // has 6 characters
//check first two characters
console.log(string.slice(0,2)); //are "\" and "u"
//convert to actual character
string = JSON.parse('"' + string + '"');
//string is now "Ä"
console.log(string);
//works for longer strings also:
console.log(JSON.parse('"\\u00c4 and \\u00d8"')); // Ä and Ø
使用这种方法应该比将字符串拆分为组件,搜索“\ u”,删除“0”和使用String.fromCharCode(parseInt('c4', 16));
答案 1 :(得分:0)
我找到了解决方案。它或多或少是好的,肯定不是完美的,但它是解决这个问题的一种方法。
我只是把字符串拆分成它的组件。所以。我正在寻找我要检查的字符串中的组合\ u。如果发现这一点,我将删除前面的全部0以获得正确的代码字。在这种情况下c4。这可以通过调用该方法来转换。 String.fromCharCode(parseInt('c4',16)); 原始字符串是在methodstart中复制的,我正在用方法中的Ä替换\ u00c4。这可以通过字符串中的每个元素来完成。