平衡点


2007/12/03

_ 続: subversion とロケール

先日, id:sasakyh:20071130#p2 で呟いていたのだけれど, その原因がようやくわかった. 症状は

  • リポジトリのあるサーバでは, ロケールを設定した後で status, commit ができる
    • LANG=ja_JP.UTF-8 では駄目. unset LANG + LC_ALL=C で可能になる
  • リモートのラップトップからは何やっても駄目

これは svn+ssh で作業していたのが問題で, リモートから接続する際には ssh 接続後に svnserve が呼ばれる. でもって, svnserve はやっぱり unset LANG + LC_ALL=C でなければロケール回りのエラーで怒られた.

結論から言うと,

  • サーバはまだ sarge で動いていて, locale で UTF-8 がサポートされていない
    • locale -a で utf8 が無い.

という事だった.

エラーメッセージ

svn update
svn: error: cannot set LC_ALL locale
svn: error: environment variable LANG is ja_JP.UTF-8
svn: error: please check that your locale name is correct

は正しかった訳だ.

とりあえず, サーバ側の LANG を ja_JP.EUC-JP に戻しておく.


2008/12/03

_ 関西 Debian

第20回 関西 Debian 勉強会, 次は 12/14 ですか.

12/15 から東京だし, ポスター作成佳境に突入してそうだしなぁ...どうしよ.


2013/12/03

_ Roundcube のメールデコード

良く知られた話かもしれませんが...

世の中には機種依存文字というのがありまして, メールの文字コードは ISO-2022-JP と謳っていながら, その実丸囲み数字とかが存在する, というメールが飛び交っております.

単に自分が受ける側であれば,

なんかを参考に, 適宜設定しておくと良いのかもしれません(cc-env memo: Wanderlust の設定).

ウチ 某所サーバでは, WebMail のサービスとして Roundcube を提供しています. で, 飛び交うメールが偶に WebMail 上で読めない, という事態が発生していることに今更ながら気がつきました.

...という訳で, ad hoc ながら /usr/share/roundcube/program/lib/Roundcube/rcube_charset.php に手を加えてみます.

# source: diff
--- rcube_charset.php.orig      2013-12-03 01:05:20.966192376 +0900
+++ rcube_charset.php   2013-12-03 01:06:28.031257391 +0900
@@ -229,6 +229,11 @@
         // convert charset using mbstring module
         if ($mbstring_list !== null) {
             $aliases['WINDOWS-1257'] = 'ISO-8859-13';
+            $aliases['JIS'] = 'ISO-2022-JP-MS';
+            $aliases['ISO-2022-JP'] = 'ISO-2022-JP-MS';
+            $aliases['EUC-JP'] = 'EUCJP-WIN';
+            $aliases['SJIS'] = 'SJIS-WIN';
+            $aliases['SHIFT_JIS'] = 'SJIS-WIN';
             // it happens that mbstring supports ASCII but not US-ASCII
             if (($from == 'US-ASCII' || $to == 'US-ASCII') && !in_array('US-ASCII', $mbstring_list)) {
                 $aliases['US-ASCII'] = 'ASCII';

...こんなんで良いのかなぁ.

mbstringJIS, ISO-2022-JP, EUC-JP, SJIS, SHIFT_JIS を扱う際に, Roundcube 内で global に alias を定義しておくと良いのかもしれませんが, あんまりコード眺めてないので対応がこれで良いのか定かではありません. 誰か教えて下さい.

あ, 対応する Roundcube の version は 0.9.5-1~bpo70+1 です.

にんともかんとも.