はてなキーワード: Sjisとは
http://linux.ohwada.jp/modules/smartsection/item.php?itemid=515
http://0xcc.net/pub/webdb/bk-05.html
などのまとめが素晴らしいね
最近のブラウザはほとんどRFC2231に対応しているみたいだ
IEは,8になってもまだ対応してなかったのかよ! とか Safariは未対応かよ! という突っ込みはあるけどね
それと,自分の環境で確かめられる範囲でさきほどの投稿の表をもう少し充実させてみたよ
生utf8 | 生sjis | url_encode(utf8) | url_encode(sjis) | RFC2231 | |
chrome24 (win7-64bit) | ok | x | ok | x | ok |
firefox18 (win7-64bit) | ok | x | x | x | ok |
IE9 (win7-64bit) | x | ok | ok | x | ok |
firefox18 (MacOS X) | ok | x | x | x | ok |
Opera | ok | x | x | x | ok |
Safari5.1.7 (MacOS X) | ok | ok | x | x | x |
IE8,7,6 | x | ok | okだけど長いファイル名× | ? | x |
RFC2231対応状況全般と,IEの8,7,6とOperaについては参考ページからの情報を使っているよ
それと,参考ページと私の調査でSafariの生SJIS対応の結果が矛盾しているんだけどどうしよう・・・バージョンの違い?
案は2つあるよね
案1)
案2)
Rails3でRFC2231準拠のやり方がよくわからないので,Rails3のsend_file関数で日本語ファイル名を使うなら案2が無難かな
Webブラウザによって,マルチバイトファイル名の取り扱いが異なるというのが問題なんだよね
いままでは,http://kingyo-bachi.blogspot.jp/2012/10/railssendfilechrome.html
を参考にして,ファイル名をURLエンコードすることでお茶を濁していたんだ
でもこれだと,Firefoxでファイル名が文字化けすることに気付いてしまった
気づかなければ放置していたんだけどね :P
http://rails.hatenadiary.jp/entry/2013/01/31/104006 を発見
(生sjisと,URLエンコードの違いはもう少ししっかり書いておかないと誤解招かないかな?という当ページへの突っ込みはさておき)
つまりは,基本は日本語ファイル名をUTF-8で扱うぞ,ただしIEだけは例外としてSJISに変換してやるぞ
ということだね
ちょっと気になったので,このあたりのブラウザの対応状況をざっと調べてみたよ
なお調べた日本語ファイル名は「今日の予定.doc」.「予」という漢字が入っているのがポイントね
生utf8 | 生sjis | url_encode(utf8) | url_encode(sjis) | |
chrome(win7-64bit) | ok | x | ok | x |
firefox 18 (win7-64bit) | ok | x | x | x |
IE9(win7-64bit) | x | ok | ok | x |
firefox(MacOS X) | ok | x | x | x |
さらにいろいろ調べてみると,正式にはRFC2231に準拠させるのが正しいみたい
http://fgin.seesaa.net/article/30073826.html によると,
IE6は対応してなかったようだけど,私の中ではIE6はもう絶滅していることになっているので!
Railsのsend_file関数でさ,RFC2231準拠のContent-Disposition表記ができたらいいのにな(チラッチラッ)
A Beautiful Site (http://abeautifulsite.net/)さんの
jquery.fileTreeを利用させてもらった。
以下、留意点...
パスを指定しないと、もとのhtmlがあるパス(ディレクトリ)にあるものと解釈する。
(/jqueryFileTree.php と指定すると、公開しているルートディレクトリにあるjqueryFileTree.phpを探しにいく)
http://...と指定して他のサーバへ問い合わせるのも可能な模様(だが、試していない)。
root:
d:/
d:/temp/
など
hemlentries -> htmlspecialchars は必須。
http://treatment-head.blogspot.com/2008/11/jquery-file-tree_21.html
ただし、UTF-8やEUC-JPでページを記述している場合は、さらに処理が必要。
windowsでは、mbstringの設定にかかわらず、引数SJIS渡し、戻り値SJIS返しの模様。
したがってUTF-8やEUC-JPでページを記述している場合は、
その点を考慮してconnectorsフォルダにあるjqueryFileTree.phpを書き換える必要がある。
$_POST['dir'] = urldecode($_POST['dir']);
という行があるが(スーパーグローバル変数はデコード済みで、さらにデコードするのは危険とphpマニュアルに記載されている)
どのみちUnicode文字列のURLデコードはこの関数では無理なようなので、phpマニュアルのUserNoteから拝借。
http://php.net/manual/en/function.urldecode.php
こちらにズバリが掲載されているか...と試してみたが、どうも動作がうまくいかなかった
http://ameblo.jp/pushurinko/entry-10287161493.html
他、ご参考
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = UTF-8,SJIS-win,eucJP-win
mbstring.substitute_character = none
;mbstring.func_overload = 0
;mbstring.strict_encoding = Off
となってます。殆どphp入れた時の初期値のはず。
どこに書いたらみんな気づいてくれるのか分からないからここらへんにも書いておこう。
windowsだと終了できないかも。(javaw.exeを強制終了で多分いける)><
http://tinyurl.com/NicoNamaAlert
だれか改良してください><
=====================================
りーどみー
=====================================
中身
NicoNamaAlert.jar
setting.txt
設定ファイル
NicoNamaAlert.java
ReadMe.sjis.txt, ReadMe.utf8.txt
使い方
その際、勝手にYahoo!ツールバーが入る事があるので気をつけて。
setting.txtに、1行ずつ予約したいコミュニティまたはチャンネルのIDを登録
channel/ch99999 とか community/co99999 といった感じで。
とりあえず1行ごとIDと比べているだけなので、
他に何か書いてあっても大丈夫なはず。
毎回このファイルは読み直しているので、変更しても再起動する必要はありません。
30秒おきに新着をチェックします。
Macの場合はおなじみのコーヒーカップのアイコンがDockに出てきます。
Windowsの場合は何も出てきません。
Unixはまだ試していません。
終了するときは、Macの場合はDockのアイコンを選択して、
上のメニューから終了 または Cmd+Q
Windowsの場合はタスクマネージャからjavaw.exeを探して強制終了してください。
他にもjavaアプリを起動している場合は、javaw.exeが複数ある可能性があるので、
そのときは運試し。
javaでブラウザを開く方法が分かりません(SE6ならできるっぽい)><
もっといい感じなの作れるひとお願いします><
コマンドラインから起動すると中の人が何してるかなんとなく見えます。
settingに最初から入っている二つのコミュ、
1つ目はお気に入りコミュ「おい、ゆとり!英語教えてください。」で、
この2つの生放送がなければこのプログラムはできていませんでした><
仕組み
http://live.nicovideo.jp/recent から必要なデータを
1行1行検索して取り出しているだけです。
チャンネル、コミュニティIDはサムネイルのファイル名から取れます。
ね、簡単でしょ?
今後の展望
アイコンをコーヒーカップ以外にしたい(っていうとOSごとに実行ファイルが必要)
Windowsでもちゃんと終了できるようにしたい(まぁ本家使ってください)
以上。
http://www.ubuntulinux.jp/products/JA-Localized http://www.ubuntulinux.jp/
http://jody.sci.hokudai.ac.jp/~ike/colum/ubuntu_feisty_amd64.html
wget -q http://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
sudo wget http://www.ubuntulinux.jp/sources.list.d/hardy.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt-get update
sudo apt-get install ubuntu-desktop-ja
sudo apt-get install ubuntu-ja-keyring
sudo apt-get upgrade
sudo apt-get install language-pack-gnome-ja language-pack-ja
sudo apt-get install ipafont ipamonafont lha-sjis
sudo apt-get install scim-anthy
sudo apt-get install scim-bridge im-switch
sudo apt-get install openoffice.org-l10n-ja openoffice.org-help-ja mozilla-firefox-locale-ja-jp
よもや、レスがついてるとは思わなかった。
興味を持ってもらえてサンクスです。
entry = diary.entry('20070712231804')
でエントリー指定してたからなんなんだろうと思って。
editもできるってことなのかな?
書き込んだあとの編集機能はいまんとこなし。
# get entry from id entry = diary.entry('20070712231804') # puts entry title puts entry.title # puts entry content puts entry.content
で、そもそもRubyに詳しくない自分からするとちゃんとした使い方がそれでもわからない。
バカでごめんねなんだけど、どうやって使えばいいの?
たとえば、エントリのタイトル一覧(1ページ目だけだけど)を出力するなら
diary = Masuda::Diary.new diary.entries do |entry| puts entry.title end
こんな感じかな。
新しいエントリを登録するなら
diary = Masuda::Diary.new diary.login('my_id', 'my_pass') diary.post('koko wa title ne', <<EOS) koko ni kizi no honbun wo kaku EOS
とか。
ずらーっと増田らしきものを読み込む。
そりゃそうだわなと思いながら文字化けの山。
文字化けなのは、たぶん増田のエントリ(UTF-8)をそのまんま取得しているせいだと思う。
~$ ruby hoge.rb | nkf -Ws
出力するときにSJISに変換するとか。
require 'rubygems' require 'masuda' require 'kconv' diary = Masuda::Diary.new diary.entries.each do |entry| puts entry.title.tosjis puts entry.content.tosjis end
あと
session[:diary] = diary.raw
diary = Masuda::Diary.restore(session[:diary])
の...って何でしょうか??
Masuda::Diary#rawはインスタンスをシリアライズするメソッド。
ログイン済みのインスタンスをシリアライズしてセッションにつっこんどいて、次のリクエストでも使いまわすとか。
わかりづらい文章で申し訳ない。
ただ、Windowsができる前にもUNIXはあったんだ。そんな人達がいることは記憶の片隅においやって。
今となってはWindowsで育たない方が変態チックだね。たしかに。
だからUNIXネイテブな秀丸がないのでしょう。秀丸が動かない環境が変態チックだから。Windowsのない環境が変といえるから。
変な環境に合わせる必要ないもんね。
そういえば日本以外のwinユーザはなに使ってるんだろう。秀丸以外でなに使ってるんだろう。
自分的には「\n <-> \r\n」「JIS <-> SJIS <-> EUC」「正規表現検索・置換」があればいいのだが、winで秀丸以外知らないんだよな。