Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

rubyの文字コードについて考える

      2013/07/15

rubyでは、1.6以降漢字コードを特別に解釈しなくなったようです。

maznはプラットフォーム間の移植生を高めるために以下のルールにしようと考えています。

  • ソースはUTF-8Nで書く
  • 半角カナは使わない
  • 改行コードはLF (UNIX)   ← これは好みが分かれそう
  • 2バイト文字を扱う為にjcodeを使用
  • 入力文字は全てUTF-8Nに変換
  • 半角カナの入力があった場合はnkfで全角カナに変換する

ということで、定型的な書き方は以下のような感じ。

#!/usr/bin/ruby -Ku
require 'jcode'
require 'kconv'

puts "入力してください'
str = gets().toutf8;
puts str;

utf-8のLinux端末やutf-8を表示できるcygwin/ckを使用していれば問題なく表示できるが、 cygwinデフォルトのDOSプロンプトでは文字化けしてしまいます。ここでputs時に変換するコードを入れるとWindows専用のコードになってしまうし・・・・ どうすればいいんだろ。

rubyのメーリングリスト見てると、文字コードに依存しないような作りを目指しているようなので、このような実装になっているようですが、システムの環境にあわせて入出力する文字コードのデフォルト値を変更できたり、環境変数で設定できればもっと実用的な言語になるのになぁって思います。

なにか良い方法を考えてみた。

rubyのラッパーを作って入出力を変換させる方法やluitのようにターミナル上で翻訳する→便利だが作るのが面倒。(誰か作らない?)

ターミナルを捨てて、Webアプリにして、ブラウザとやりとりする→手軽に使えない・・・

うぅ・・・ やっぱりrubyでも内部処理はUTF-8で統一して入出力変換できるようにして欲しい。

参考 : FAQ:日本語の取り扱い
: Rubylist Magazine

 - IT技術, プログラミング

336px

Message

メールアドレスが公開されることはありません。

  関連記事

no image
screenコマンド覚え書き@Linux

ssh接続が切れても作業環境を保てたり、複数画面を切り替えられたり、画面上の文字 …

no image
Search Everything 日本語版

WordPressのページ機能でページを作成しても、検索窓の検索対象になりません …

no image
ログの転送@Cisco 2960

Ciscoのスイッチでログの転送(syslog)をする設定の覚え書き。syslo …

no image
Windowsで空のイメージファイル作成@WindowsXP

Linux上でのddコマンドのように、Windows上で空のファイルを作成する方 …

no image
スピーカーのアイコンに×がつく@Windows 7

Windows 7を起動すると、音声は問題なく出ているのに、タスクトレイにあるス …

no image
lxc-cloneでoverlayfsを使ってみる@Ubuntu 14.04

既存Linuxコンテナのディレクトリをコピーして、LXCのクローン環境を作るので …

no image
iモーションのエクスポート属性と着信音について@SH906i

iモーションを自作の着うたにする場合に、エクスポート属性をつけた場合とつけない場 …

no image
screenからtmuxに乗り換えてみる

screenからtmuxに乗り換えた時のメモ。 まずは、ネットの情報を参考に、~ …

no image
Linuxコンテナ(LXC)を使ってみた@Ubuntu 14.04

Linuxコンテナ(LXC)をUbuntu 14.04上で使用した時のメモです。 …

no image
ネットワーク遅延のシミュレーション@CentOS 5

最近のLinux では、簡単にネットワーク遅延をシミュレーションできるようです。 …