4

CodePage 1001 アラビア語をサポートする Star Micronics TSP を使用していますが、C# を使用して UTF-8 を特定のコード ページに変換するにはどうすればよいですか?

更新: CodePage 864 がプリンターと互換性があることがわかりました。16 進数値を送信してみましたが、正しい文字が得られました。

myPrinter.PrintNormal(PrinterStation.Receipt, "\xFE8D");

文字列をcodePage 864に変換するために次のことを試しました:

Encoding enc = Encoding.GetEncoding(864);
byte[] arr = enc.GetBytes("السلام");

エンコーディング後に取得しているバイト arr 値は{63,63,63,63,63,63}値が間違っており、2 バイト文字であるためバイト数も間違っています。

4

2 に答える 2

5

テストされていませんが、:

String s = Encoding.UTF8.GetString(bytes);
Encoding enc = Encoding.GetEncoding(1001);
byte[] arr2 = enc.GetBytes(s);

もちろん、実際に文字列から始めている場合は最初の行をスキップしますが、UTF-8について言及しているので、バイナリを想定しました。

明らかに、大量のデータの場合は、代わりにTextReader/ TextWriter(それぞれエンコード付き)を使用できますが、同じ考えです。

于 2011-07-24T18:06:37.613 に答える
0

質問した元の人がまだ答えを必要としているとは思いませんが、このスレッドはかなり有名なようで、難しい方法で見つけたものを見つけるために誰かに時間を無駄にしてほしくありません..

この回答は主に、スター精密 TSP プリンターに付属のアプリケーションに依存しています。

重要なポイント: - "Interop.OposPOSPrinter_CCO.dll" を参照 - プリンター オブジェクトは oposposprinter.printer 型である必要があり、(opos.net と比較して) わずかに異なる方法で初期化されます - 文字コードは文字列として送信され、これらの 10 進数を文字コードとして使用するようにプリンタ オブジェクトに指示する変数

シンプルなアラビア文字コンバーターを使用した VB.net プロジェクトのサンプルは、https://bitbucket.org/loody/arabic-1001/overviewにあります。

注: 残りの文字/数字を説明する時間がありません

于 2012-10-27T00:01:20.657 に答える