お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2013-02-18 11:41:12

oolong
メンバ
登録日: 2010-02-21

webサーバー(lighttpd)が送信する文字コードを強制的にshift_jisにしたい。

Ubuntu12.04 desktopとlighttpdで宅内サーバーを立てています。

先日、ウェブページを探していたら、MPWiiというのを用いて、webサーバーを使ってNintendo Wiiで音楽を聞けるようにできる、というものを見つけました。
早速、試してみたのですが、MPWii側(Wii側)で文字化けを起こしてしまいます。
調べてみると、サーバー側が送信している文字コードがunicodeであるために、文字化けを起こしているようです。

本来なら、MPwiiにはその回避策として、Unicodeで読み込む機能が付いているのですが、どういうわけか、Wii側でmpwiiの設定を変更することが出来ず、shift_jisモードのままで読み込んでしまいます。

そこでwebサーバー側の設定を変更しようと思ったのですが、やり方がわかりません。

どなたかご存じの方がいましたら、教えてください。
よろしくお願いします。

MPWiiのページ
http://www.geocities.jp/korowinu/movie/mpwii/

オフライン

 

#2 2013-02-18 21:07:11

ItSANgo
メンバ
登録日: 2012-07-08

Re: webサーバー(lighttpd)が送信する文字コードを強制的にshift_jisにしたい。

VirtualBox上のUbuntu12.04にlighttpdとMPWiiを入れてみました。
文字コードの件ですがMPWiiはShift JISでデータをやり取りしています。lighttpdはアプリケーション(この場合はMPWii)のデータを変換せずにそのままやり取りしているだけだと思います。
MPWiiではファイル名だけはShift JISとUnicodeを選択できるようになっており、PC上のブラウザではこの選択は効いているように見えますが、Wii上のブラウザではこの機能が効いていないかのような動きをしています。
MPWiiデータを閲覧するときにはファイル名をShift JISに統一してディレクトリ上に置くという運用にしてはいかがでしょうか?

オフライン

 

#3 2013-02-18 21:32:31

oolong
メンバ
登録日: 2010-02-21

Re: webサーバー(lighttpd)が送信する文字コードを強制的にshift_jisにしたい。

いつもご回答いただき、ありがとうございます(^^)

ItSANgo による投稿:

MPWiiデータを閲覧するときにはファイル名をShift JISに統一してディレクトリ上に置くという運用にしてはいかがでしょうか?

すみません・・・
方法がわからないので、教えていただくことはできないでしょうか・・・?

オフライン

 

#4 2013-02-18 23:19:26

ItSANgo
メンバ
登録日: 2012-07-08

Re: webサーバー(lighttpd)が送信する文字コードを強制的にshift_jisにしたい。

oolong による投稿:

ItSANgo による投稿:

MPWiiデータを閲覧するときにはファイル名をShift JISに統一してディレクトリ上に置くという運用にしてはいかがでしょうか?

すみません・・・
方法がわからないので、教えていただくことはできないでしょうか・・・?

私が使ったのは次の手製のスクリプトです。

fname2sjis.sh

コード:

#! /bin/sh

for i in "$@"
do
     mv -i "$i" "`echo $i | nkf -s`"
done

fname2utf8.sh

コード:

#! /bin/sh

for i in "$@"
do
     mv -i "$i" "`echo $i | nkf -w`"
done

Shift JISのファイル名に変換したいファイルがあるディレクトリで
fname2sjis.sh *
などとします。
utf-8に戻したくなったら、
fname2utf8.sh *

しかし、ファイル数が増えていくと実用に絶えないと思います。何かもっとスマートな方法があればよいのですが…。

オフライン

 

#5 2013-02-18 23:41:15

arucat
メンバ
登録日: 2009-02-03

Re: webサーバー(lighttpd)が送信する文字コードを強制的にshift_jisにしたい。

oolong による投稿:

いつもご回答いただき、ありがとうございます(^^)

ItSANgo による投稿:

MPWiiデータを閲覧するときにはファイル名をShift JISに統一してディレクトリ上に置くという運用にしてはいかがでしょうか?

すみません・・・
方法がわからないので、教えていただくことはできないでしょうか・・・?

convmvコマンドというものがあるようです。

コード:

sudo apt-get install convmv

でコマンド本体をインストールしたあと、

コード:

convmv -f utf8 -t sjis *

変換されるファイルの確認コマンド。(この時点では未変換)

コード:

convmv --notest -f utf8 -t sjis *

これで一括変換となるようです。
変換するときに使用できるコード一覧は、

コード:

convmv --list

これで確認できます。

オフライン

 

#6 2013-02-19 22:18:57

oolong
メンバ
登録日: 2010-02-21

Re: webサーバー(lighttpd)が送信する文字コードを強制的にshift_jisにしたい。

お二人に教えていただいた方法をそれぞれ試して見ましたので、その結果を記述いたします。

ItSANgo による投稿:

oolong による投稿:

ItSANgo による投稿:

MPWiiデータを閲覧するときにはファイル名をShift JISに統一してディレクトリ上に置くという運用にしてはいかがでしょうか?

すみません・・・
方法がわからないので、教えていただくことはできないでしょうか・・・?

私が使ったのは次の手製のスクリプトです。

fname2sjis.sh

コード:

#! /bin/sh

for i in "$@"
do
     mv -i "$i" "`echo $i | nkf -s`"
done

fname2utf8.sh

コード:

#! /bin/sh

for i in "$@"
do
     mv -i "$i" "`echo $i | nkf -w`"
done

Shift JISのファイル名に変換したいファイルがあるディレクトリで
fname2sjis.sh *
などとします。
utf-8に戻したくなったら、
fname2utf8.sh *

しかし、ファイル数が増えていくと実用に絶えないと思います。何かもっとスマートな方法があればよいのですが…。

こちらの方法を試してみたのですが、何故かうまく行かず、スクリプト自体は実行されたようなのですが、ファイル名は変更されていませんでした。

arucat による投稿:

oolong による投稿:

いつもご回答いただき、ありがとうございます(^^)

ItSANgo による投稿:

MPWiiデータを閲覧するときにはファイル名をShift JISに統一してディレクトリ上に置くという運用にしてはいかがでしょうか?

すみません・・・
方法がわからないので、教えていただくことはできないでしょうか・・・?

convmvコマンドというものがあるようです。

コード:

sudo apt-get install convmv

でコマンド本体をインストールしたあと、

コード:

convmv -f utf8 -t sjis *

変換されるファイルの確認コマンド。(この時点では未変換)

コード:

convmv --notest -f utf8 -t sjis *

これで一括変換となるようです。
変換するときに使用できるコード一覧は、

コード:

convmv --list

これで確認できます。

フォルダの階層が多いため、-rオプションをつけて変換したのですが、変換先オプションに"shiftjis"を指定すると、

コード:

To prevent damage to your files, we won't continue.
First fix errors or correct options!

と出てしまい、変換されない状況でした。

いろいろ試しては見たのですが、現時点では、ファイル名のエンコードの変更はできていません。

オフライン

 

#7 2013-02-19 22:34:52

ItSANgo
メンバ
登録日: 2012-07-08

Re: webサーバー(lighttpd)が送信する文字コードを強制的にshift_jisにしたい。

oolong による投稿:

ItSANgo による投稿:

私が使ったのは次の手製のスクリプトです。

fname2sjis.sh

コード:

#! /bin/sh

for i in "$@"
do
     mv -i "$i" "`echo $i | nkf -s`"
done

こちらの方法を試してみたのですが、何故かうまく行かず、スクリプト自体は実行されたようなのですが、ファイル名は変更されていませんでした。

多分ですが、nkfが入っていなかったのではないでしょうか?
もちろんこのやり方だとディレクトリ階層には対応していないのでお勧めのやり方ではありません。

オフライン

 

Board footer

Powered by FluxBB