
日本語ファイル名の利用とバージョン管理
− 次世代プロトコルWebDAVの可能性[後編] −
宮本 久仁男<kmiya@coe.nttdata.co.jp>
NTTデータ COEシステム本部
システム技術開発部第三技術開発担当
2001/10/16
日本語ファイル名問題の解決
中編で構築したWebDAV環境で日本語を含む名前のファイルやフォルダを作ると、画面5のように一見正しく作成されているように見えても、
![]() |
| 画面5 Webフォルダで新規にフォルダを作成 |
フォルダ情報を更新すると画面6のように実は名前が化けていたりすることに気が付くはずだ。この状態でアクセスすると、エラーが発生してそのファイルやフォルダは利用できない。これではいささか具合が悪い。
![]() |
| 画面6 日本語は文字化けしてしまう |
これは、ファイルの作成やファイル名の変更時に、WebDAVサーバに送るファイル名の文字列符号化形式がシフトJISであるのに対し(図5)、WebDAVサーバからクライアントに送られるファイル名の文字列符号化形式はUTF-8なのが直接の原因である。
![]() |
| 図5 WebDAVサーバとクライアントが、それぞれ異なる文字列符号化形式でやりとりしている |
| コラム URLの文字列符号化形式についての補足 |
| クライアントからどのような符号化形式のファイル名文字列を送るかをサーバに通知するための仕組みがないうえに(XMLも関係することから、WebDAVではファイル名文字列の符号化形式についてもUTF-8を推奨していると推測される)、Webフォルダから送出されるファイル名文字列の符号化形式が常にシフトJISであることが元凶である。この部分、RFC 2718においてUTF-8が推奨されている(URIの文字符号化形式の部分)旨が記述されていることもあるが、このようなちぐはぐがないような形で取り扱ってくれればと切に希望する。 |
このような状況を解決するのが、IIJのTaisuke Yamada氏が作成したmod_encodingモジュール(注)である。具体的には、図6のような動作を行う。Yamada氏は本モジュールをIIJ内部で使うために作ったが、会社の許可を得て社外に公開しているとのこと。詳細な使用条件は、モジュールに記述されているので参考にしてほしい。
![]() |
| 図6 mod_encodingにより、文字列符号化形式がUTF-8に統一される |
| 注:mod_encodingが使えない人は、ファイルやフォルダの作成後にフォルダ情報を更新しないで名前を変更するなどして対処してほしい。 |
■mod_encodingのインストール
mod_encodingの導入手順は以下のとおりである。
1.ソースコードの取得
mod_encoding.cはWebDAVのメーリングリスト(dav-dev)で公開されたものであり、これを入手するにはメーリングリストのアーカイブから取得する必要があった。しかし、今回は作者であるTaisuke Yamada氏のご厚意により、mod_encoding.cを転載させていただいた。転載を承諾いただいたTaisuke Yamada氏に感謝いたします。
mod_encoding.cのダウンロード
なお、mod_encoding.cのオリジナルはhttp://www.lyra.org/pipermail/dav-dev/2001-May/002428.htmlにある。
2.コンパイルおよびインストール
$ apxs -c mod_encoding.c |
これで、Apacheのモジュールが格納されているディレクトリにmod_encoding.soが作成される。
3.Apacheの設定
httpd.confファイルを編集して、
LoadModule encoding_module libexec/mod_encoding.so |
という記述を追加することでmod_encodingの機能をApacheに取り込み、
<IfModule mod_encoding.c> |
と記述することで、特定の種類のクライアント(ここではMicrosoft系OSおよびcadaver)のClient Encodingを指定し、適切な処理を行えるようにする。
4.動作確認
ここまでで、日本語ファイル/フォルダ名が扱えるようになっているはずだ。実際に日本語で名前を付けたフォルダやファイルを取り扱った例を画面7に示す。
![]() |
| 画面7 mod_encodingインストール後。日本語のフォルダ/ファイル名が扱えるようになっているのが分かる |
■mod_encoding利用時の注意
mod_encodingは文字コードの取り扱いをiconv()の実装に依存しているため、iconv()がインストールされている必要がある。Linuxについては、最近のディストリビューションで採用しているglibcであれば問題はない(iconv()が入っている)が、そうでないものやiconv()がないOSなどでは、別途libiconvが必要となる。
なお、古いバージョンのglibcを使ったLinuxだったりすると、iconv()の実装が古くてmod_encodingモジュールが正常に機能しないことがある。このような場合は、mod_encoding.cの170行目にある、
iconv(cd,
NULL, NULL, NULL, NULL);
|
の行を丸ごとコメントアウト/無効にすることで取りあえずの対処はできる。しかし、この部分はバッファやステータスのフラッシュを実行する部分とのことなので、glibcのバージョンアップなどで対処する方がよい。
また、iconv()の実装に起因した問題もあるが、それについては後述する。
| 中編へ |
1/3
|
|
||||||
|
||||||
| Linux Square全記事インデックス |
| Linux Squareフォーラム WebDAV関連記事 |
| 特集:次世代プロトコルWebDAVの可能性[前編] 技術仕様徹底解説 将来、SambaやCVSを不要にする可能性を秘めた「WebDAV」。このプロトコルの仕様から実用化までを徹底解説。今回は、技術仕様を明らかにする |
|
| 特集:次世代プロトコルWebDAVの可能性[中編] WebDAVクライアント/サーバ環境の構築 WebDAVの実装はすでに存在する。LinuxによるWebDAVサーバの構築とクライアントの整備を行い、実際に使ってみよう |
|
| 特集:次世代プロトコルWebDAVの可能性[後編] 日本語ファイル名の利用とバージョン管理 日本語ファイル名を扱えるようにするほか、WebDAVの「V」を司るバージョン管理機能を実現。WebDAV解説完結編! |
|
| 特集:WebDAV時代のセキュリティ対策[前編] WebDAVのメソッドは便利な反面、セキュリティホールとなり得る。しかし、適切な対策を講じることでメソッドの危険性は取り除くことができる |
|
| 特集:WebDAV時代のセキュリティ対策[後編] WebDAVの使用に際し、包括的な対策を行っておくのも重要である。何をどのように設定すればよいのかをここで明らかにする |
|
| 特集:Apache
2.0でWebDAV Apache 2.0の正式リリースでWebDAVも新たな段階に入った。一方で、1.3時代のmod_encodingがうまく機能しないという問題も浮上した |
|
| 特集:Subversionによるバージョン管理 DeltaVがRFCとしてリリースされ、WebDAVのバージョン管理機能も足元か固まった。DeltaVの実装である「Subversion」を導入しよう |
|
| Linux Squareフォーラム全記事インデックス |
|
ホワイトペーパー(TechTargetジャパン)
- natテーブルを利用したLinuxルータの作成・2 (2010/3/11)
IPパケットのディスティネーションアドレスを書き換える「DNAT」を使って、透過型プロキシを構築します - 一歩進んだ監視のカスタマイズ (2010/3/3)
スクリプトの実行結果などを取得できるユーザーパラメータを用いて、自分のニーズにぴったり合った監視を実現 - OSSライセンス順守の第一歩 (2010/2/18)
企業として、OSSライセンス違反を犯さないためには、どのような手順が必要か、いくつかアドバイスします - 無視できないフラグメンテーション問題への解答は? (2010/2/10)
今回は、メモリコンパクション、そしてメモリバリアを発行するシステムコールという2つのパッチについて深く紹介します
|
|
- PowerShell 2.0で始めるWindowsシステム管理
- natテーブルを利用したLinuxルータの作成・2
- ERPの“事業仕訳け”でIT予算をもっと有効に!
- 調査の難しい「OutOfMemoryError」事例、5選
- 組み込みシステム開発における“モデル”とは?
- 西和彦、ビル・ゲイツに会う
- 「事業仕分け」「修正予算」って何?国家予算の全体像
- IT業界職種カタログ(8)ITエデュケーション
- .NET TIPS - .NET開発のテクニックとヒント集 -
- Hyper-Vライブ・マイグレーションの運用ノウハウ
- 構造体の便利な用途、インターフェイス入門
- 3人中2人が間違える!? 片持ちばりの計算をしよう
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 New! |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜Java編〜
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |

| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |

| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |
| ◆ | 直属上司が海外にいるのエンジニアに見る 【実例】場所に捉われないワークスタイル |

| ◆ | 「仮想化工房」のマイスターが選んだのは VMware、Hyper-V、そしてVirtageだった! |
| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |











