こんにちは、私はこれについて精神を失っています。端末から直接入力としていくつかの文字列を取得し、文字列に入力された各バイトのascii値を印刷するcで書かれたプログラムがあります。入力拡張子asciiを試してみてください。値(127より大きい値)を使用しましたが、そうしませんでした。特にASCII値を入力する必要があります。137文字列として入力 - >その値を持つ文字を入力して、ほぼすべてを試しました。
- キーを作成して次のように入力します。
e
+"
- Unicode値
ctrl
++の後にASCIIコードの16進値が続きます。これはUnicodeとして入力されるため、値shift
137u
には1バイトではなく2バイトが必要です。 ctrl
+d
- 拡張ASCII値はサポートされていません。
とにかく、この問題を解決する方法を知っている人がいれば役に立ちます。
ベストアンサー1
使用できるluit
、これによりcp850アプリケーションを実行できます(ロケールUTF-8ターミナルでそれを見つけてluit
UTF-8に変換したり、UTF-8で変換したりできます。
それだけの価値があるだけに、スクリーンショットLuitを含むcp850:
スクリーンショットは、各ロケールエンコーディングのテスト画面を表示するスクリプトセットに設定されます。すべてのエンコーディングが対応するロケール情報で構成されるわけではありません。 761ロケール私のDebian 7システムにはlocale -a
32のエンコーディングのみがリストされています。
ANSI_X3.4-1968 EUC-TW ISO-8859-14 ISO-8859-9
ARMSCII-8 GB18030 ISO-8859-15 KOI8-R
BIG5 GB2312 ISO-8859-2 KOI8-T
BIG5-HKSCS GBK ISO-8859-3 KOI8-U
CP1251 GEORGIAN-PS ISO-8859-5 RK1048
CP1255 ISO-8859-1 ISO-8859-6 TCVN5712-1
EUC-JP ISO-8859-10 ISO-8859-7 TIS-620
EUC-KR ISO-8859-13 ISO-8859-8 UTF-8
最新バージョンのluit(例:2013年2.0)があり、ロケール情報がインストールされている場合は、実行するのは簡単です。
luit -encoding cp850
アプリケーションはコードページ850を使用するシェルを実行しますが、選択/貼り付け(およびキーボード)はシェルからロケールエンコーディングに変換されます(POSIXでのみ機能しないためUTF-8と仮定)言語環境。
これ-v
(verbose) オプションはいくつかの詳細を表示します。
$ luit -encoding cp850 -v -v
getCharsetByName(ASCII)
cachedCharset 'ASCII'
getCharsetByName(<null>)
using unknown 94-charset
getCharsetByName(CP 850)
cachedCharset 'CP 850'
getCharsetByName(<null>)
using unknown 94-charset
Input: G0 is ASCII, G1 is Unknown (94), G2 is CP 850, G3 is Unknown (94).
GL is G0, GR is G2.
Output: G0 is ASCII, G1 is Unknown (94), G2 is CP 850, G3 is Unknown (94).
GL is G0, GR is G2.
以前のluitを使用すると、不完全なロケール情報に依存するため、正しく機能しません。 Luit 1.1.1の機能は次のとおりです。
$ luit -encoding cp850 -v -v
Warning: couldn't find charset data for locale cp850; using ISO 8859-1.
G0 is ASCII, G1 is Unknown (94), G2 is ISO 8859-1, G3 is Unknown (94).
GL is G0, GR is G2.
OpenSuSEを実行している場合は、パッケージが提供されます。他の極端(Ubuntuなど)では、ロケールを設定するのは面倒ですが、luit
ソースでコンパイルするのは比較的簡単です。