出産前後の痔にはご注意!

UTF-8の文字コードのコード値が,以下のように\(バックスラッシュ)+8進数の表記×3バイト分で,記述されています。
(例えば,\343\201\202は「あ」を表す)

"\343\201\202\343\201\204\343\201\206"
(これは「あいう」)

このようなコードの値を文字列にしたものを,実際のutf8の文字に変換するメソッドは無いのでしょうか?

例えば,

"\343\201\202\343\201\204\343\201\206".method
=> "あいう"

のようなmethodに相当するメソッドは無いのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

前回の続きですね。


http://okwave.jp/qa3630630.html

前回のお礼の欄で、問題点が見えてきましたが、
p と、print(puts)は違いますよ。
この点を勘違いしているのでは?

今回の件では、下記で「あいう」と表示されます。
(当方は、Windows環境なので sjis に変換します)

require 'kconv'
print "\343\201\202\343\201\204\343\201\206".tosjis

p ではなく、 print か puts を使って下さい。

因みに p なら下記の様に表示されます。

"\202\240\202\242\202\244"

--------------------------------------------------
念のため、前回の件の補足をしますが、
当方の環境では、下記のソースで文字コード変換出来、
正常に日本語が表示されます。
(UTF-8で書かれたページで確認しました。)

require 'net/http'
require 'kconv'
resp = Net::HTTP.new("サイトアドレス").get("パス")
print resp.body.tosjis
    • good
    • 0
この回答へのお礼

馬鹿な質問にご回答ありがとうございます。
pをprintにすれば解決しました。

お礼日時:2007/12/29 03:08

Rubyの記法だと、"\343\201\202\343\201\204\343\201\206" はそのままで、UTF-8の「あいう」ですけど、


puts "\343\201\202\343\201\204\343\201\206" => あいう

'\343\201\202\343\201\204\343\201\206'.method ・・・ケース1
を聞いていると思って良いのでしょうか?それとも、
'"\343\201\202\343\201\204\343\201\206"'.method ・・・ケース2
でしょうか?

いずれにせよ、#1の方がお書きの通り、evalですがこれは関数的に使います。
ケース2だと、
puts eval('"\343\201\202\343\201\204\343\201\206"') => あいう
ケース1だと、下記のように両端に " を補う必要があります。
puts eval('"'+'\343\201\202\343\201\204\343\201\206'+'"') => あいう
    • good
    • 0
この回答へのお礼

ありがとうございます。
ずっとpを使ってました。printで解決。あー,馬鹿な質問,後悔です。

お礼日時:2007/12/29 03:10

eval があるなら, それでいいような気がする. ちょっといじらないとダメかもしれんが.

    • good
    • 0
この回答へのお礼

ありがとうございます。
ずっとpを使ってました。printで解決しました。

お礼日時:2007/12/29 03:11

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qshはシェルなのかコマンドなのか?

http://d.hatena.ne.jp/KishikawaKatsumi/20080504/1209922424

$ sudo sh j2sdk-1_4_2_13-linux-i586-rpm.bin
$ sudo rpm -ivh j2sdk-1_4_2_13-linux-i586.rpm
と、shと打ち込むと最後の.binが消えますが、shは
シェルなのか、それともコマンドなのかどちらなの
でしょうか?

手元にあるlinuxの入門書には「shはシェルの一種である」
と記述があります。googleで検索をしてみましたが、
コマンドであるような記述もあり、混乱しております。

また、その入門書には「シェルを切り替えるには、コマンドライン
でシェルの名前を入力します。exitコマンドで、元のシェル
に戻ります」とあり、その文章の下には実際にshと打ち込んでexit
で元に戻る様が書いてあるので実際に試してみました。

[root@localhost ~]# sh
sh-3.2# exit
exit
[root@localhost ~]#

この記述のせいでますますわからなくなりました。

なお、最後のbinがシェルスクリプトであることは理解して
おります。

ご存じの方、ご教授頂ければ幸いです。何卒宜しくお願い申し
上げます。

http://d.hatena.ne.jp/KishikawaKatsumi/20080504/1209922424

$ sudo sh j2sdk-1_4_2_13-linux-i586-rpm.bin
$ sudo rpm -ivh j2sdk-1_4_2_13-linux-i586.rpm
と、shと打ち込むと最後の.binが消えますが、shは
シェルなのか、それともコマンドなのかどちらなの
でしょうか?

手元にあるlinuxの入門書には「shはシェルの一種である」
と記述があります。googleで検索をしてみましたが、
コマンドであるような記述もあり、混乱しております。

また、その入門書には「シェルを切...続きを読む

Aベストアンサー

shを始めとするシェルには2つの側面があります。

1) インタラクティブ(対話的)シェル
「sh」だけで起動した場合はこの状態です。最初はキーボードからの入力待ち状態で、1行コマンドを入力してリターンを押すと即座に実行し、コマンドが終了すると、再度入力待ち状態に戻ります。

2) コマンドインタープリタ
「sh ファイル名」で起動した場合はこの状態です。キーボードの代わりに、ファイルからコマンドを読み取り/実行を繰り返します。最後まで処理を終えるか、ファイル内で終了コマンドを読み取った段階で終了します。

シェルスクリプトというのは、要は、一連の処理手順を手で入力する代わりにファイルにまとめて一気に実行できるようにしたものと思えば良いでしょう。


人気Q&Aランキング