2016-09-10 19 views
0

デコードの助けが必要です。 \のu00c4(実際の鍵a)Javascript decodeURIで問題が発生する

キーの名前PARAMTERに梱包されています:reboundContent [2] [ID](\ u00c4)

reboundContent [2] [ID]で、パラメータを考えると

データベースから読み込みます。

次のようにしてみました:decodeURI(reboundContent [2] [id])これは動作しません。

新しい文字列を作成してパラメータを渡すと、すべてが完全に機能しますが、そのパラメータを渡すことはできません。

これは狂っています。

ありがとうございました!

+0

'\ u00c4'は引用符で囲まれた文字列として渡されますか? – guest271314

+0

いいえ、mysqlを介してデータベースから変数を読み取ることはできません – DotBlack

+0

_「mysqlを介してデータベースから変数を読み取ることはできません」_ console.log(reboundContent [2] [id]、typeof reboundContent [2] [id]) '' console'でログに記録しますか? – guest271314

答えて

0

解決策が見つかりました。多かれ少なかれ、確かに完璧ではありませんが、それを解決する方法です。

文字列をコンポーネントに分割していました。そう。私はチェックしたい文字列の組み合わせを探しています。それが見つかった場合は、正しいコードワードを取得するために、前にあるすべての0を削除します。この場合、c4。これはそのメソッドを呼び出すことで変換できます。 String.fromCharCode(parseInt( 'c4'、16)); 元の文字列がmethodstartでコピーされましたが、\ u00c4をメソッドのÄに置き換えています。それは文字列の各要素で行うことができます。

1

\ u00c4を含む文字列には、実際には "\"、 "u"、 "0"、 "0"、 "c"、 "4"の6文字が含まれているようです。簡単なアプローチを表すように意図されている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));

+0

こんにちは、トマス。ありがとうございました。私は全く新しい方法を見つけた!私は今、キーのキーコードを保存しています。しかし、それはありがとう! – DotBlack

関連する問題