出力文字列を提供する組み込みシステムで作業しています。これらの文字列の一部にはカスタムシンボルが付いています。私がしようとしているのは、それらを読んで、同様の外観のUnicode文字にデコードすることです。私が持っている問題は、ChromeのInspectツール(具体的にはネットワークタブ)で受け取ったメッセージを調べることができますが、文字列は65533文字(置換文字)に編集されているということです。実行時に文字列を編集しようとしています
私が使用しようとしていたコードは次のとおりです。点検タブで
textLines[3] = textLines[3].replace ("\xCD", "\x25a0");
文字がI(U + 00CD)として表示されますが、Webページでは、置換文字として表示されます。スクリプトのエンコーディングをUTF-16に設定しようとしましたが、うまくいきません。私が使用しているフォントはLucida Consoleで、これにはこの文字が必要です。
実際の値を検出して実行時に変更できるようにするにはどうすればよいですか?
EDIT: 実際のエンコーディングはありません。文字はLCD画面から直接読み込まれます。私が得た価値は205です。それが問題です。
デコードしようとしている形式はUTF-16です。翻訳したいのシンボルは何であり、それはバイト単位でフォームをコードしているものである:
あなたの問題に対する答えではないので、これをコメントとして追加してください。 –
これは不器用ではありません。ウェブはutf-8をより多く使用しますが、それは任意です。あなたのデザインでは、中間のフォームを選択する必要があります。したがって、組み込みシステムで、非標準のワードサイズを持つビットストリームがある場合(例:6ビットにフィールドの3ビットが続く)、私は8ビットまたは16ビットに標準化します。次に、私は情報の表示に合った出力形式に変換することを示します。あなたは多くのタイプのディスプレイを持つことができます。 1つはutf-16ウェブページである可能性があります。もう1つはコントローラへのRS-485接続です。 –