メールサーバー IMAPディレクトリ名のデコード
Ruby の場合
ruby -r 'net/imap' -e 'Dir.glob("*"){|f| print f+"\n"; print Net::IMAP.decode_utf7(f)+"\n"}'
- メールサーバー IMAPディレクトリ名のデコード の続きを見る
- コメントを投稿するにはログインまたは登録をしてください
- 閲覧数 98
Ruby の場合
ruby -r 'net/imap' -e 'Dir.glob("*"){|f| print f+"\n"; print Net::IMAP.decode_utf7(f)+"\n"}'
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
tar xvf ruby-2.3.1.tar.gz
cd ruby-2.3.1/
./configure --prefix=/home/myaccount/
make
make install
$ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
と、rails new store とかしたら、
Installing sqlite3 (1.3.4) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb checking for sqlite3.h... no sqlite3.h is missing. Try 'port install sqlite3 +universal' or 'yum install sqlite3-devel' and check your shared library search path (the location where your sqlite3 shared library is located). *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more
とりあえずは、gccインストール。
後は、ソースダウンロード、解凍、configure, make, make install でひとまず完了。
しかし、gem install rails したら、
ERROR: Loading command: install (LoadError) no such file to load -- zlib ERROR: While executing gem ... (NameError) uninitialized constant Gem::Commands::InstallCommand
とエラー。
zlib1g-dev をインストール後、再度 configure, make, make install で解決。
zlib-develとかいう名前ではないので、少し捜した。
invalid multibyte char (US-ASCII)
というエラーが出てしまいました。
Rubyのバージョンが、1.9.1なので、
# -*- encoding: utf-8 -*-
のように、ソースの先頭行(先頭行がシェバングの場合は2行目)で、文字エンコーディングを指定する必要があり、
指定しないと、7ビットASCII(US-ASCII)だと想定されるのだそうです。
# coding: utf-8
や
# encoding: utf-8
など、先頭行(先頭行がシェバングの場合は2行目)にあるコメント行の中に「coding:」という文字列を探し、その後の文字列がエンコーディング名だと判断します。
エンコーディング名は大文字小文字を区別しない。だから、
# This file is coding: uTf-8
としてもかまわないのです。(こんなことしないでしょうけど)
coding:の後の空白も必須ではないのです。
#coding:utf-8
でも、動くことは動きます。
見にくいので、空白を入れて # coding: utf-8 の方が好きです。
UTF-8のバイトオーダーマークを、Rubyは理解してくれるそうです。
参考にしたのは、
http://ruby.g.hatena.ne.jp/garyo/20100512/p2
http://twitter.rubyforge.org/
ほとんど参考情報のまま。
#!/usr/local/bin/ruby require 'twitter' httpauth = Twitter::HTTPAuth.new('USERNAME', 'PASSWORD') client = Twitter::Base.new(httpauth) Twitter::Search.new.to('SEARCH_ACCOUNT').each do |r| puts puts r.created_at puts r.from_user puts r.text end
なお、rubyのバージョンは
ruby 1.9.1p378 (2010-01-10 revision 26273) [i686-linux]
irbで直前の値は_に格納されている。 bcでは.に。 直前だけではなく更に以前の値を参照したいときは、eval history機能を使う。 .irbrcに IRB.conf[EVAL_HISTORY] = 0 とすると全ての値を記憶する。 個数制限したい場合はその数を記入する。 こうするとirbで__で履歴が表示される。 __[1]などとすると個別の値が取り出せる。 |
ERBはRuby1.8系から標準添付だからeRuby使用できるはずということで、ここのサーバーでの方法を試してみた。
.htaccess に、
AddType application/x-httpd-eruby .rhtml
Action application/x-httpd-eruby /rb/erb.cgi
みたいに書く。
ここでのポイントは、/rb/erb.cgi 。
これは自分のホームディレクトリが、ルートディレクトリになっているから、
public_html/rb/erb.cgi ってこと。
もちろん、ディレクトリもファイル名もお好みに。
問題は中身だ。
http://tnomura9.exblog.jp/3118941/
こちらを参考にさせていただいて、
#!/usr/bin/ruby
require 'erb'
print "Content-Type: text/html¥r¥n¥r¥n"
ERB.new(IO.read(ENV['PATH_TRANSLATED'])).run