プロが教える店舗&オフィスのセキュリティ対策術

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に相当するメソッドは無いのでしょうか?

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が見つからない時は、教えて!gooで質問しましょう!