2

バックスラッシュなしでユニコードを書くテキストフィールドを作成しようとしています。入力後にバックスラッシュを追加したい。したがって、ユーザーが u2605 と入力すると、コードはそれを「\u2605」に変換します。次に、これを Unicode 文字に変換し、テキストフローに挿入します。

私のコード:

  • これは機能します:

    span.text = publicFunctions.htmlUnescape(he.encode("\u2605"))
    
  • これは機能しません:

    span.text = publicFunctions.htmlUnescape(he.encode("\\u"+"2605"))
    

ユニコード文字列として機能する文字列を作成する方法は?

あらゆる種類のことを試しました、 escape(unescape())、数値に変換、「\u」、「\u」...何も役に立ちません。

trace("\u2605" == "\u"+"2605") ... は false を返します。trace("\u2605" == "\u"+"2605") も同様です

4

2 に答える 2

2

"\u2605"は、コード ポイント の文字 1 文字の文字列で2605"\\u" + "2605"は 6 文字 (バックスラッシュ、 、uおよび 4 桁の数字) の文字列です。

4 桁だけから Unicode 文字を作成したい場合は、String.fromCharCode. 問題は、エスケープ シーケンスが16 進数を使用しているのに対し、メソッドは明らかに 10 進数を使用していることです。したがって、ユーザーが 16 進数の文字列を入力した場合は、最初にそれを変換する必要があります。

trace(String.fromCharCode(parseInt('2605', 16)) == '\u2605'));
于 2013-07-30T00:25:35.940 に答える