3

イタリア語の文を含むエンコードされた Ruby 文字列UTF-8を、ESC/POS サーマル プリンター (ASCII-8BIT (1 バイト) 文字セットのみを受け入れるプリンター: http://maxdb.sap.com/doc/7_6/ca ) に印刷する必要があります。 /bd35406ee32e34e10000000a155106/content.htm )。

ところで、Ruby 2.x (Windows または Linux) を使用しています。トランスコードの仕方に困っています。

たとえば、リモートサーバーでエンコードされた JSON UTF-8 に含まれる文字列、またはテンプレートファイルに含まれる文字列を次のようにします。

#!/bin/env ruby
# encoding: utf-8

string = "Però non è la città di Barnabù"

文字列 (アクセント付き/国際化された 2 バイト) を 1 バイト ('ASCII8-BIT' エンコード) に変換する必要があります。

UTF-8 から ASCII8-BIT への変換方法について何か提案はありますか?

.force_encoding('ASCII-8BIT') や encode(") などのメソッドで自分を失いました ...

編集: Epson TM-T20 プリンターの文字セット表

どうもありがとうジョルジオ

4

1 に答える 1

1

私は解決策を次のように見つけます:

string.encode "IBM437"

コメントで述べたように、Epson TM-T20 プリンターを読み直しました。デフォルトの「コードテーブル」番号:0、意味:「PC437:USA、標準ヨーロッパ」で設定されています

PC437実際、私は 2Code Page 437' を参照することを理解しています。参照: en.wikipedia.org/wiki/Code_page_437

そこで、興味深い宝石を見つけました: github.com/ConradIrwin/encoding-codepage

コード ページ437 がcharsetに対応することを示す "IBM437"

プリンターが正しく印刷されるようになりました。私はここで自分自身に答えて、他の人を助けるかもしれません。

ジョルジオ

于 2014-04-23T05:38:59.193 に答える