[#48349] Ruby/GTK2 archlinux x64 エラー — ashbb <ashbbb@...>
こんにちは。ashbbです。
11 messages
2011/09/10
[#48350] Re: Ruby/GTK2 archlinux x64 エラー
— Kouhei Sutou <kou@...>
2011/09/10
須藤です。
[#48351] Re: Ruby/GTK2 archlinux x64 エラー
— ashbb <ashbbb@...>
2011/09/10
ありがとうございます!
[#48352] Re: Ruby/GTK2 archlinux x64 エラー
— ashbb <ashbbb@...>
2011/09/10
須藤さん
[#48353] Re: Ruby/GTK2 archlinux x64 エラー
— Kouhei Sutou <kou@...>
2011/09/11
須藤です。
[#48358] windows 7 でruby 使ってみようとしています。 — 稲葉伸之 <nobuyuki.inaba@...>
お世話になります。
5 messages
2011/09/13
[#48371] [ANN] Ruby-GNOME2 1.0.1 — Kouhei Sutou <kou@...>
須藤です。
6 messages
2011/09/18
[#48379] splitの正規表現を改善したい — masayoshi takahashi <maki@...>
高橋征義です。こんにちは。
6 messages
2011/09/21
[#48382] Ruby/Gstreamer for Windows — ashbb <ashbbb@...>
こんにちは。
17 messages
2011/09/22
[#48383] Re: Ruby/Gstreamer for Windows
— Kouhei Sutou <kou@...>
2011/09/23
須藤です。
[#48385] Re: Ruby/Gstreamer for Windows
— ashbb <ashbbb@...>
2011/09/23
須藤さん
[#48386] Re: Ruby/Gstreamer for Windows
— Kouhei Sutou <kou@...>
2011/09/23
須藤です。
[#48388] Re: Ruby/Gstreamer for Windows
— ashbb <ashbbb@...>
2011/09/23
> どうやってビルドしました?
[#48406] Re: Ruby/Gstreamer for Windows
— Kouhei Sutou <kou@...>
2011/09/25
須藤です。
[#48413] Re: Ruby/Gstreamer for Windows
— ashbb <ashbbb@...>
2011/09/25
Wow!
[#48415] Re: Ruby/Gstreamer for Windows
— Kouhei Sutou <kou@...>
2011/09/25
須藤です。
[#48440] Re: Ruby/Gstreamer for Windows
— ashbb <ashbbb@...>
2011/10/04
その後です。。。
[#48441] Re: Ruby/Gstreamer for Windows
— Kouhei Sutou <kou@...>
2011/10/06
須藤です。
[#48442] Re: Ruby/Gstreamer for Windows
— ashbb <ashbbb@...>
2011/10/07
>
[#48464] Re: Ruby/Gstreamer for Windows
— Kouhei Sutou <kou@...>
2011/10/12
須藤です。
[#48392] 要素のない配列の挙動? — 俊(とし) <toshio.otaguro@...>
前略
21 messages
2011/09/24
[#48393] Re: 要素のない配列の挙動?
— TADA Tadashi <t@...>
2011/09/24
ただただしです。
[#48394] Re: 要素のない配列の挙動?
— 俊(とし) <toshio.otaguro@...>
2011/09/24
ただただし さん
[#48399] Re: 要素のない配列の挙動?
— nonta@...
2011/09/24
野田と申します。
[#48400] Re: 要素のない配列の挙動?
— 俊(とし) <toshio.otaguro@...>
2011/09/24
皆さま
[#48401] Re: 要素のない配列の挙動?
— dezawa <dezawa@...>
2011/09/25
私も何度もはまるんですが、これ
[#48396] Ruby 1.9 で Shift JIS の YAML — "5.5" <5.5@...>
5.5 です。
6 messages
2011/09/24
[ruby-list:48418] Re: Ruby 1.9 で Shift JIS の YAML
From:
"Y. Nobuoka" <nobuoka@...>
Date:
2011-09-27 01:15:45 UTC
List:
ruby-list #48418
5.5 さん
信岡です。
> ところが,Ruby 1.9 では,Shift JIS の YAML テキストを与えても,
> UTF-8 としてパースしているように見えます。
> Shift JIS として解釈させる方法がありますか?
Ruby 1.9 では、UTF-8 としてパースしているというよりも、
Ruby 1.8 と同じく文字エンコーディングを気にせずにパースして、
結果の文字列のエンコーディングを問答無用で UTF-8 に指定しているように思います。
(YAML ライブラリの中身をちゃんと見ていないので間違えているかもしれません。)
そのため、 force_encoding メソッドを使って YAML ライブラリの出力文字列のエンコーディングを
本来のエンコーディングに戻してやるという方法で使えないことはないと思います。
#! ruby1.9 -ECP932:CP932
# coding: CP932
require "yaml"
text = '- 日本語'
# YAML.load の結果が問答無用で UTF-8 になるのでエンコーディングを指定しなおす
str = YAML.load( text ).first.force_encoding( Encoding::CP932 )
puts text.encoding, #=> Windows-31J
str.encoding, #=> Windows-31J
str.size, #=> 3
str.unpack( 'C*' ).map{ |c| c.to_s( 16 ).upcase }.join( ' ' )
#=> 93 FA 96 7B 8C EA
しかしながら、Shift_JIS (または CP932) では、特定の文字の 2 バイト目が
バックスラッシュのバイト値と同じになりますので、例えば以下のような場合に
エラーが発生してしまいます。 (これは Ruby 1.8 でも 1.9 でも同様です。)
#! ruby1.8 -Ks
require "yaml"
text = '[ "噂" ]' # CP932 の '噂' の 2 バイト目はバックスラッシュと同じバイト値
str = YAML.load(text).first # エラー発生
puts text.encoding, str.encoding, str.size
puts str.unpack( 'C*' ).map{ |c| c.to_s( 16 ).upcase }.join( ' ' )
どうしても Shift_JIS を使わなければいけない、というのでないならば、
UTF-8 に変換してから YAML.load に投げる、というのが安全だと思われます。
--
信岡 ゆう (NOBUOKA Yu)