Lynx での UTF-8 入力

Lynx での UTF-8 入力

ウェブブラウザLynxでは、設定により非ASCII文字を正しく表示できるようになりました。

CHARACTER_SET:UNICODE (UTF-8)

/etc/lynx-cur/lynx.cfg。 も試しましたがASSUME_CHARSET、違いはありませんでした。ただし、入力フィールドに非 ASCII 文字を入力すると、正しく機能しません。たとえば、フォーム フィールドにコピーすると、正しく表示されます。ただし、スペース キーを押すと、挿入ポイントが行の先頭に移動します。 でこれを行うとÄpfel、貼り付けたときにも正しく表示されます。 を入力すると、Ä は正しく表示されますが、残りの文字を入力すると、挿入ポイントが最初に左端に移動され、その後、文字が表示されません。

どのような設定が必要ですか? 私のロケールはすべて UTF-8 です。Debian 8.7 で Lynx 2.8.9dev.1 を使用しています。Emacs を含む他のすべてのアプリケーションは、非 ASCII 文字で問題なく動作します。

答え1

私はManjaro 18にlynxバージョン2.8.9rel.1(2018年7月8日)をインストールしています。lynxをインストールした後、ページをテストしましたhttps://zh.wikipedia.org/wiki/リンクス中国語の文字が正しく表示されないことに気づいたので、次の行を追加しました。

 CHARACTER_SET:utf-8

ファイルに追加します/etc/lynx.cfg

utf-8cfgファイルのMIME名欄に記載されている値はUNICODE (UTF-8)「'O'ptions Menuの文字列」欄のものではないことに注意してください。その後、上記のページの中国語の文字が正しく表示されるようになりました。チャットルームも問題なく動作しました。

Thomas Dickey が言及したバグが関連しているかどうかはわかりませんが、cfg ファイルで正しい値を使用することで問題は解決しました。

答え2

偶然ですが、バグは修正されました最近:

2017-04-29 (2.8.9dev.13)
* amend fix for Debian #841155, adding check for special case where the
  expected number of cells is zero (report by Larry Hynes) -TD

2017-04-28 (2.8.9dev.12)
* correct logic in cell2char(), which gave up too early in determining the
  number of cells needed for a multibyte string in the editable text-fields
  (Debian #841155) -TD

デビアン #841155昨年秋に報告されたが、問題はcell2char2009年に追加された の初期バージョンにあった。2.8.7 開発版 10ここで言及されている:

* rewrite LYRefreshEdit(), to display multibyte/multicolumn characters properly
  when using wide-character curses -TD

簡単に言うと、Lynx は curses を使用して文字を表示し、画面上のマルチバイト文字の幅を確実に把握するために、セルを数えながら隠しウィンドウにテキストを描画します。

関連情報