文字コードにUTF-8を採用している環境において、sprintfで%sで幅を指定して文字列を表示させて「あれ?」と思ったことはないだろうか。UTF-8では全角1文字のバイト数は3バイトになるので、sprintfで%8s等と指定しても全角文字があると意図した通りにならない。これは以下のコードで一応解決できる。 require "kconv" $KCODE = "UTF8" s = "日本語" print(sprintf("|%-*s|\n",8 + s.length - s.tosjis.length,s)) ただし、kconvによる文字コードの変換は割と不親切で、ちょっと特殊な文字だとinvalid encodingになるので、そのちょっと特殊な文字を扱いたい場合は予め削除する等の対策が必要となる。 UTF-8環境でsprintfで幅指定をしても日本語の文字列が正しく表示されない理由はこう
お薦め ページ ハワイ島旅行代理店 スカイメリカ トップページ このブログを書く四元輝博とジョシュア清水が経営する旅行代理店スカイメリカ 日本人パイロットによるコナ空港発、ハワイ島一周遊覧飛行セスナツアー 「Kona Wind」 ジョシュア清水 自らが操縦する、日本語でのガイドと会話を楽しみながらハワイ島を巡るセスナの旅 ハワイを飛ぶ日々 このブログを書く四元輝博と共にスカイメリカを経営するハワイ島在住の日本人パイロット、ジョシュア清水のブログ シリコンバレー 24時 スカイメリカの共同経営者、シリコンバレー在住の四元輝博によるIT情報・ベンチャー起業に関するブログ 組み込みJava による M2Mソリューション 総合研究所 四元輝博によるに 「組み込みJava による M2Mソリューション」に関する調査レポート・サイト 2007年5月 8日 ruby での「 Invalid char `
1.6/ 1.8/ cygwin-1.5.10-3-src.tar.bz2 7850905 2015-07-25T02:02:05.000Z cygwin-1.5.10-3.tar.bz2 1181032 2015-07-25T02:02:05.000Z cygwin-1.5.5-1-src.tar.bz2 6798059 2015-07-25T02:02:09.000Z cygwin-1.5.5-1.tar.bz2 1118814 2015-07-25T02:02:12.000Z cygwin-1.5.9-1-src.tar.bz2 7639827 2015-07-25T02:02:14.000Z cygwin-1.5.9-1.tar.bz2 1244314 2015-07-25T02:02:15.000Z md5.sum 444 2015-07-25T02:02:16.000Z set
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日本 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直
・ 読書メモ: 基本的に読み終わったもののみ載せる (読みかけとか途中で飽きたものを含めるとキリがないから) ・ Tips : 作ったスクリプトとかTips (WSH, JScript, Perl, Ruby, Rails, UNIXコマンド他) ※その他のtipsはこっち → tips ・ 日記 : 自分が思ったことの覚え書き的に 「TODO係」ではメールを受け取ったらそれをパースしてDBに登録するという動作をします。 メールサーバ(qmailとかPostfixとか)の設定で、メール受信時にバッチを起動して云々、、とやるのがスマートで良いのですが、メールサーバを管理したことが無いのでサーバを立てたりしたらスパムの踏み台にされてしまいそうで怖かったので 「cronでバッチを呼んで、そのバッチからメールを定期的に読みに行く」 という運用にしました。 使ってみたのは g
ブロックの使い方を練習してみます。 def repeat(n) n.times { yield } if block_given? end repeat(2) { puts "Hello." } # Hello. # Hello. メソッドに渡したブロックはyieldを用いて呼び出します。 似たような例としてもう一つ。 # nからmまでの自然数の合計を求める def sumup(n, m, sum=0) (n..m).each { |x| # yield でブロックを呼び出す yield if block_given? # 引数にブロックが与えられている puts x sum += x } puts "Sum : #{sum}" end sumup(2, 4) { printf "Add : " } #Add : 2 #Add : 3 #Add : 4 #Sum : 9 渡されたブロックは
はじめに Rubyの普及にともない、Rubyの生みの親である、まつもとゆきひろ氏がC言語で作成したRubyインタプリタ(CRuby)以外にも、JVMで実行されるJRuby、Objective-Cで実装されMacアプリケーションのプログラミングのできるMacRuby、CRubyベースにメモリ管理に改良を加えているRuby Enterprise Edition等、プログラミング言語Rubyを実行できる環境が増えてきました。またCRubyに関しても、現在最も使われているバージョンである1.8系以外にも、最新の安定版である1.9系も普及期にはいってきました。 今回は、複数のRuby実行環境の管理を簡単にするRVM(Ruby Version Magager)を紹介します。 RVMとは RVMはUNIX系の環境で、複数のRuby処理系をインストール、共存させることができるツールです。 ひとつの環境に対
DoRuby! (ドルビー!) は現場のエンジニアによる、主にRubyなどの技術に関する様々な実践ノウハウを集めた技術情報サイトです。 こんにちは。 KBMJでRuby on Rails を使ったweb開発に携わっているyoppiといいます。 今回はRuby1.8で動いていたRailsのプロジェクトをRuby1.9にした時に出た問題とその対処法について書こうと思います。 まず、今回の現象が出た時の環境を書いておきます。 OS: Windows Vista Home Basic SP1 Ruby:1.9.1 Rails:2.3.2 rake:0.8.4 問題は、ruby1.9にしてプロジェクトのルートディレクトリでrakeコマンドを実行したときに起きました。 rakeコマンドの引数が何であっても、「invalid byte sequence in Windows-31J」という
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く