Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

japanese

VNC上の文字化け解消@CentOS 5

一部のアプリケーション、例えばJavaやOracleのインストーラーなどは、VNC上で使うと日本語は文字化けしてしまいます。

VNCサーバーの本体Xvncコマンドではフォントの指定を-fpオプションで行うことで、文字化け回避できるのですが、それのラッパーコマンドであるvncserverはこの-fpオプションに対応していません。

しかし、実はvncserverコマンドは単なるperlのスクリプトなので、これを直接書き換えることで簡単に回避できます。

rootユーザで、以下のように/usr/bin/vncserverの箇所を編集(1行追加)するだけです。あとVNCサーバーを再起動してください。

# Add font path and color database stuff here, e.g.:
#
# $cmd .= " -fp /usr/lib/X11/fonts/misc/,/usr/lib/X11/fonts/75dpi/";
# $cmd .= " -co /usr/lib/X11/rgb";
#
$cmd .= " -fp unix/:7100";

← これを追加

フルスクリーン時に日本語入力ツールバーが邪魔@Ubuntu 9.04

scim+anthy で日本語入力していましたが、動画を見るときにフルスクリーンにすると、日本語入力のツールバーだけ隠れてくれなくて、かなり邪魔に感じました。

ツールバーではなく、システムトレイ版も用意されているので、こちらに変更すればOKです。

$ im-switch -c 

There are 11 candidates which provide IM for /home/mazn/.xinput.d/ja_JP:

  Selection    Alternative
  -----------------------------------------------
      1        default
      2        default-xim
      3        none
      4        scim
      5        scim-bridge
      6        scim-immodule
      7        th-xim
      8        uim
      9        uim-systray
*     10        uim-toolbar
      11        uim-toolbar-qt
System wide default for ja_JP (or all_ALL) locale is marked with [+].
Press enter to keep the current selection[*], or type selection number: 9

上記のように現在の設定が"*"で表示されます。9を入力して、uim-systrayに変更します。

Windowsのtelnetコマンドの文字コード@Windows XP

限られた環境で、ターミナルのソフトにWindowsのtelnetしかない場合、telnetでログインすると文字化けしてしまいます。

Windowsのtelnetは以下のようにして、表示する文字コードをEUCに変更できます。

>telnet
Microsoft Telnet> set codeset japanese EUC
エミュレーションの種類: VT100/漢字コードセット: Japanese EUC
Microsoft Telnet> open IPアドレス

EUC以外にも以下のようなものが指定できるようですが、UTF8ないみたいです。しかし最近のLinuxはほとんどUTF8になってきているので、使いづらいです。

shift jis
jis kanji

rubyの文字コードについて考える

rubyでは、1.6以降漢字コードを特別に解釈しなくなったようです。

maznはプラットフォーム間の移植生を高めるために以下のルールにしようと考えています。

  • ソースはUTF-8Nで書く
  • 半角カナは使わない
  • 改行コードはLF (UNIX)   ← これは好みが分かれそう
  • 2バイト文字を扱う為にjcodeを使用
  • 入力文字は全てUTF-8Nに変換
  • 半角カナの入力があった場合はnkfで全角カナに変換する

ということで、定型的な書き方は以下のような感じ。

#!/usr/bin/ruby -Ku
require 'jcode'
require 'kconv'

puts "入力してください'
str = gets().toutf8;
puts str;

utf-8のLinux端末やutf-8を表示できるcygwin/ckを使用していれば問題なく表示できるが、 cygwinデフォルトのDOSプロンプトでは文字化けしてしまいます。ここでputs時に変換するコードを入れるとWindows専用のコードになってしまうし・・・・ どうすればいいんだろ。

rubyのメーリングリスト見てると、文字コードに依存しないような作りを目指しているようなので、このような実装になっているようですが、システムの環境にあわせて入出力する文字コードのデフォルト値を変更できたり、環境変数で設定できればもっと実用的な言語になるのになぁって思います。

なにか良い方法を考えてみた。

rubyのラッパーを作って入出力を変換させる方法やluitのようにターミナル上で翻訳する→便利だが作るのが面倒。(誰か作らない?)

ターミナルを捨てて、Webアプリにして、ブラウザとやりとりする→手軽に使えない・・・

うぅ・・・ やっぱりrubyでも内部処理はUTF-8で統一して入出力変換できるようにして欲しい。

参考 : FAQ:日本語の取り扱い : Rubylist Magazine

Search Everything 日本語版

Wordpressのページ機能でページを作成しても、検索窓の検索対象になりません。

このプラグインを入れることでページやコメントなども検索出来るようになります。 http://wppluginsj.sourceforge.jp/i18n-ja_jp/search-everything/

文字コード一括変換@Linux

最近のLinuxはUTF8が標準になっていますが、ちょっと昔のファイルはEUCだったりします。UTF8に変換したい場合、一つずつ変換してもいいですが、大量ファイルがあると面倒なので、一括で変換する方法です。

nkf編

$ mkdir utf8
$ for i in `ls -I utf8`; do  echo $i; nkf -d -w80 $i > utf8/$i ; done

nkf : -d : LF(UNIX)に変換 -w80 : UTF8に変換

ls : -I utf8 : utf8というファイル名やディレクトリ名を出力しない

iconv編

iconvはうまく変換できずにエラーになる場合があるようです。 また、改行コードは変換できません。

$ mkdir utf8
$ for i in `ls -I utf8`; do  echo $i; iconv -f EUC-JP -t UTF9 $i > utf8/$i ; done

iconv : -f インプットファイルのコード -t アウトプットのコード

Javaアプリの日本語文字化け対策

Linux上のSunのJVMで、GUIアプリを動かすと文字化けしてしまいます。 これはフォントが用意されていないためで、以下の方法で解決できます。

jreのインストールディレクトリの以下のディレクトリ

(例) /usr/local/java/jdk/jre/lib/fonts

にfallbackというディレクトリを作成

# mkdir fallback

そこに

kochi-gothic-subst.ttf
kochi-mincho-subst.ttf

をコピーすればOK

ちなみに、Debian etchでは

/usr/share/fonts/truetype/kochi/

にあった!

このブログについて
プライバシーポリシー・お問い合わせ等
購読する(RSS)
記事検索
アーカイブ
カテゴリー
  • ライブドアブログ