2011-09-29 8 views
0

JavascriptまたはjQueryで文字エンコーディングを別のエンコーディングに変換するための組み込み関数またはユーザー定義関数を教えてください。 "UTF-8" TO "窓 - 1256" FROM "窓-1256" OR TO "UTF-8" FROM例についてはJavascriptで1つの文字エンコーディングから別のエンコーディングに変換する機能を教えてください。

あなたが持っている場合はその実用化がありますビジネスニーズに応じて変更できなかった "windows-1256"のような特定の文字エンコーディングを持つPHPページと、 "utf-8"エンコーディングのみを使用するjsonを使用してデータベースからブロックデータを送信するためにajaxを使用する場合jsonの出力をこのエンコーディングに変換して、文字と文字列がうまく表示されるようにします。

ありがとうce .....

+0

これはJavaScriptが一般的に非常に弱いです。あなたのユースケースは何ですか、何をする必要がありますか? –

+0

私は実際のケースを提供するために私の質問を編集しました。 – TopDeveloper

+0

私は100%確信していません。テストする時間はありませんが、ブラウザがそのシナリオを処理してデータを自動的に変換するという印象を常に受け​​ていましたか? –

答えて

1

JavaScriptランタイム環境の観点からは、実際には文字エンコード–のようなものはありません。エンコードの乱雑さはあなたから抽象化されています。 specによって、すべてのJSソーステキストはUnicode文字として解釈され、StringはすべてUnicodeです。

このように、JavaScriptではUnicode以外の文字を表す方法はありません。 methods available on a String instance –を見ると、文字エンコーディングには何も関係しないことがわかります。

JavaScriptはUnicodeで動作し、すべてのJavaScript文字列はUnicodeに格納されるため、すべてのAJAX呼び出しはUnicodeでワイヤを介して送信されます。 jQuery AJAX docs

データは常にUTF-8文字セットを使用してサーバーに送信されます。これをサーバー側で適切にデコードする必要があります。

PHPスクリプトは、AJAX呼び出しのUnicode入力に対処する必要があります。

+0

あなたの論理的な答えをありがとうございます。ビジネスルールによって、分散しているデータベースに対応する別のエンコーディングを使用することがありますが、エンコーディングの変更がすべてのアプリケーションに影響を及ぼし、多くのテキストが読み込めない場合があります(特にアラビア語)あなたの役に立つ情報。 – TopDeveloper

+0

'JavaScriptがUnicodeで動作し、すべてのJavaScript文字列がUnicodeで保存されているので、すべてのAJAX呼び出しがUnicode形式で転送されます。 ' AJAX呼び出しを行わずに純粋なJavaScriptを使用する場合は、フォームオプションもユニコード形式でデータを送信しますか? これはこれに関連していますか?:http://stackoverflow.com/questions/22179247/jquery-post-changing-the-html-of-some-special-characters –

+0

@ChankeyPathak:いいえ、関連しません。ブラウザーによる '

'の提出は別の獣です。フォーム要素を送信するときにブラウザが使用する文字エンコーディングは、ブラウザ、ドキュメントのエンコーディング、 ''属性、および他の方法で選択されるエンコーディングで表現できない文字の存在によって変わることがあります。 HTML5 [指定](http://www.w3.org/TR/html5/forms.html#selecting-a-form-submission-encoding)では、ブラウザでエンコーディングを選択する方法はありますが、古いブラウザではこの仕様に準拠していません。 – josh3736

関連する問題