ファイルをUTF-8にコンバートする

提供:MoodleDocs
2008年8月12日 (火) 21:27時点におけるMitsuhiro Yoshida (トーク | 投稿記録)による版 (→‎方法2)
移動先:案内検索

Moodle 1.6


作成中です - Mitsuhiro Yoshida 2008年8月10日 (日) 15:11 (CDT)

カスタム言語パック、またはサードパーティモジュールの言語ファイル等は、Moodle 1.6のUTF-8データベースで使用する前に、UTF-8にコンバートする必要があります。

*nix likeコンピュータ (Mac OS Xを含む)

一般的にUnix、Linux、Macの「iconv」コマンドを使用してコンバートします。

iconv -f original_charset -t utf-8 originalfile > newfile

Windowsコンピュータに関する説明もご覧ください - ここでのスクリプトは*nixコンピュータのものですが、cygwin環境で使用します。

Windowsコンピュータ

Windowsでは、UTF-8へのコンバートに3つの方法があります。

方法1

  • フラットファイルをサクラエディタ (http://sakura_editor.at.infoseek.co.jp/) で開いてください。
  • ファイル (F) >> 名前を付けて保存 (A) を選択してください。
  • 文字コードセットをUTF-8、改行コードをLF (Unix) にしてください。
  • 保存 (S) をクリックして、ファイルを保存してください。

または

  • フラットファイルをPSPad (http://www.pspad.com) で開いてください。
  • Formatメニューをクリックして、UTF-8を選択してください。
  • ファイルを保存してください。

方法2

Windowsバージョンのiconvプログラムをダウンロードしてください。「Complete package, except sources」をダウンロードして、セットアッププログラムを実行してください。実行ファイルは、binfフォルダに入っています。実行ファイルをコマンドプロンプトから実行 (スタート >> ファイル名を指定して実行(R) >> 名前(O)) して、上記インストラクションに従ってください。

方法3

The conversion may also be done by using Cygwin, a Linux-like environment for Windows, and excecuting the iconv command in that environment. Here is an example of a working solution on Windows with Cygwin:

  • Create a text file, named ToUtf8.txt
  • Fill it with the following code
#!/bin/bash
FROM=iso-8859-1
TO=UTF-8
ICONV="iconv -f $FROM -t $TO"
# Convert
find ToUTF/ -type f -name "*" | while read fn; do
cp ${fn} ${fn}.bak
$ICONV < ${fn}.bak > ${fn}
rm ${fn}.bak
done

Two things should be changed for your local situation:

  1. FROM is the originating encoding (the one your original files are in)
  2. ToUTF is the foldername where the files that need to be converted are in. This folder may contain subfolders. Make sure you have a backup!
  • Start Cygwin.
  • With the cd foldername, cd.., ls commands, go to the folder on your windows machine where the ToUtf8.txt script and the ToUTF8 folder are in.
  • Execute the script by typing sh ToUtf8.txt and your files will be converted.