[#49838] rubyでfloat(32bit浮動小数点)の数値をHEX表示する手法は? — junichirou tahara <taharajunichirou@...>

anh0YWhhcmHjgajnlLPjgZfjgb7jgZnvvI4NCuePvuWcqO+8jGZsb2F05pWw44KSSEVY44Gn6KGo

14 messages 2014/06/23
[#49840] Re: rubyでfloat(32bit浮動小数点)の数値をHEX表示する手法は? — EGUCHI Osamu <eguchi@...> 2014/06/23

44GI44GQ44Gh77yg44Ko44K544Ki44Oz44OJ44Kk44O844Gn44GZ44CCDQoNCjIwMTTlubQ25pyI

[#49842] Re: rubyでfloat(32bit浮動小数点)の数値をHEX表示する手法は? — Nobuyoshi Nakada <nobu@...> 2014/06/23

(2014/06/23 9:29), EGUCHI Osamu wrote:

[#49843] Re: rubyでfloat(32bit浮動小数点)の数値をHEX表示する手法は? — junichirou tahara <taharajunichirou@...> 2014/06/23

44G+44Gk44KC44Go5qeY77yM44GI44GQ44Gh5qeYDQrjgYLjgorjgYzjgajjgYbjgZTjgZbjgYTj

[#49844] Re: rubyでfloat(32bit浮動小数点)の数値をHEX表示する手法は? — junichirou tahara <taharajunichirou@...> 2014/06/23

anh0YWhhcmHjgafjgZnvvI4NCmZsb2F0ID0+IEhFWOOBjOOBp+OBjeOBvuOBl+OBn+OBjA0KSEVY

[ruby-list:49852] encoding of backtrace

From: OHARA Shigeki <os@...>
Date: 2014-06-25 12:35:42 UTC
List: ruby-list #49852
大原といいます。

Ruby 2.1 で EUC-JP で書かれたコードを
端末が EUC-JP でも UTF-8 でも動くようにしたいと思い、
下記のようなコードを書いてみました。

---- ここから ----
#!/usr/local/bin/ruby
# -*- mode: ruby; encoding: euc-jp -*-

console_encoding = Encoding.locale_charmap
$stdout.set_encoding(console_encoding, Encoding::CP51932)
$stderr.set_encoding(console_encoding, Encoding::CP51932)
$stdin.set_encoding(console_encoding, Encoding::CP51932)

puts "ほげ"
warn "ほげ"
raise StandardError, "ほげ"
---- ここまで ----

これを UTF-8 な端末で動かすと、

---- ここから ----
ほげ
ほげ
z.rb:11:in `<main>': **ココが文字化け** (StandardError)
---- ここまで ----

のように、 puts と warn は UTF-8 で出力されるのですが、
最後の例外の backtrace だけは EUC-JP になって文字化けしてしまいます。

これはそういうものでしょうか?
これを端末の encoding に合わせて出力する方法はあるでしょうか?

あと、 set_encoding のくだりはもっとこうした方が良いというのがあれば、
教えていただけるとありがたいです。

# もっとスッキリ書けないかというのと、
# Encoding::CP51932 と即値で書いているところを、
# ソースコードの encoding を取得したものをセットしたい。

----
OHARA Shigeki (大原 重樹) <os@iij.ad.jp>

In This Thread

Prev Next