2016-04-04 18 views
-1

出力文字列を提供する組み込みシステムで作業しています。これらの文字列の一部にはカスタムシンボルが付いています。私がしようとしているのは、それらを読んで、同様の外観のUnicode文字にデコードすることです。私が持っている問題は、ChromeのInspectツール(具体的にはネットワークタブ)で受け取ったメッセージを調べることができますが、文字列は65533文字(置換文字)に編集されているということです。実行時に文字列を編集しようとしています

私が使用しようとしていたコードは次のとおりです。点検タブで

textLines[3] = textLines[3].replace ("\xCD", "\x25a0"); 

文字がI(U + 00CD)として表示されますが、Webページでは、置換文字として表示されます。スクリプトのエンコーディングをUTF-16に設定しようとしましたが、うまくいきません。私が使用しているフォントはLucida Consoleで、これにはこの文字が必要です。

実際の値を検出して実行時に変更できるようにするにはどうすればよいですか?

EDIT: 実際のエンコーディングはありません。文字はLCD画面から直接読み込まれます。私が得た価値は205です。それが問題です。

デコードしようとしている形式はUTF-16です。翻訳したいのシンボルは何であり、それはバイト単位でフォームをコードしているものである:

答えて

-1

のように置き換えされていますブラウザに出力を送る前に、エンコードを手作業で行います。シンボルは正しいUnicode値に変更され、その後、Javascriptスクリプトで(replace()を使用して)置換されます。少し不器用ですが、実際には動作します。

+0

あなたの問題に対する答えではないので、これをコメントとして追加してください。 –

+1

これは不器用ではありません。ウェブはutf-8をより多く使用しますが、それは任意です。あなたのデザインでは、中間のフォームを選択する必要があります。したがって、組み込みシステムで、非標準のワードサイズを持つビットストリームがある場合(例:6ビットにフィールドの3ビットが続く)、私は8ビットまたは16ビットに標準化します。次に、私は情報の表示に合った出力形式に変換することを示します。あなたは多くのタイプのディスプレイを持つことができます。 1つはutf-16ウェブページである可能性があります。もう1つはコントローラへのRS-485接続です。 –

0

2つのことは、あなたはエンコーディングの

  • 情報を知っている必要がありますか?
  • デコードに関する情報:ウェブページのデコード形式とは何ですか? (通常はUTF-8です)ページに表示したいシンボルは何ですか?また、Webページのデコード形式のエンコード形式は何バイトですか?

私が「£」(U + 00A3)に転記した記号「é」(U + 00E9)があるとします。 ソース情報がISO-8859-1(ASCII拡張)でエンコードされているので、 "é"が233(または "\ xE9")であるとします。 私はutf-8としてデコードされたWebページに "£"というシンボルを表示したいので、 "£"は194(または "\ xC2")と162(または "\ xA3")の2バイトです。

今私がしなければならないすべては私が何をしたか、233のすべてのインスタンスを見つけ、原因、私が働いている組み込みシステムは、非標準の文字を持っているという事実のために194と162

+0

ウェブページのデコードはUTF-16です。一方、シンボルのエンコーディングは難しいです。私は組み込みシステムから直接価値を得ています。標準的なエンコーディングはありません(特定の文字ではなくLCDに描画される値)。システムから得られる価値は205です。 – MKII

+0

@MKII UTF-16の[link](https://en.wikipedia.org/wiki/UTF-16)を確認してください。組み込みシステムからの情報については、あなたに感動を与えるようにする必要があります。翻訳計算は同じプリンシパルです。 –

関連する問題