種類
- 文書 (22)
- クラス (22)
- インスタンスメソッド (11)
ライブラリ
- ビルトイン (33)
クラス
- Regexp (11)
キーワード
- String (11)
-
fixed
_ encoding? (11) - 多言語化 (11)
- 正規表現 (11)
検索結果
-
Encoding
:: CompatibilityError (18042.0) -
2つのエンコーディング間に互換性がない場合に発生する例外。
...い場合に発生する例外。
エンコーディングの異なる文字列を連結しようとした場合などに発生します。
//emlist[例][ruby]{
"あ".encode("EUC-JP") + "あ".encode("UTF-8")
#=> Encoding::CompatibilityError: incompatible character encodings: EUC-JP and UTF-8
//}... -
正規表現 (666.0)
-
正規表現 * metachar * expansion * char * anychar * string * str * quantifier * capture * grouping * subexp * selector * anchor * cond * option * encoding * comment * free_format_mode * absenceop * list * specialvar * references
...るよう
になる場合があります。つまりメタ文字列を構成します。例えば
//emlist[][ruby]{
/[a-z]/
/\Axyz\Z/
//}
という正規表現において "[a-z]", "\A", "\Z"はメタ文字列です。
===[a:expansion] 式展開
正規表現内では、#{式} という形式で......。以下の例で「全角」括弧は EUC-JP では
単語を成す文字と見なされますが、UTF-8 では見なされません。
その結果、以下のような挙動をします。
//emlist[][ruby]{
# -*- coding:utf-8 -*-
# デフォルトは UTF-8
/foo\b/.match("あいうfoo%") # => #......by]{
# -*- coding:utf-8 -*-
/あいう/.encoding # => #<Encoding:UTF-8>
/abc/.encoding # => #<Encoding:US-ASCII>
/abc/u.encoding # => #<Encoding:UTF-8>
//}
正規表現のエンコーディングと文字列のエンコーディングが非互換で
ある場合、Encoding::CompatibilityError が... -
多言語化 (548.0)
-
多言語化 Ruby は US-ASCII はもちろん、US-ASCII 以外の文字エンコーディングもサポートしています。 文字列の内部表現のエンコーディングは固定されておらず、 プログラマは目的に応じて使用するエンコーディングを選ぶことができます。
...多言語化
Ruby は US-ASCII はもちろん、US-ASCII 以外の文字エンコーディングもサポートしています。
文字列の内部表現のエンコーディングは固定されておらず、
プログラマは目的に応じて使用するエンコーディングを選ぶこ......例][ruby]{
"いろは".encode("Shift_JIS")
"\xA4\xA4\xA4\xED\xA4\xCF".force_encoding("EUC-JP")
//}
====[a:ruby18] Ruby 1.8 からの移行
Ruby 1.8 からの移行措置として、コマンドオプション -K を指定すれば
Ruby 1.8 用に書かれたスクリプトもできる限り動く......例外 (Encoding::CompatibilityError) が発生します。
//emlist[][ruby]{
p Encoding::ISO_2022_JP.dummy? # => true
s = "漢字".encode("ISO-2022-JP")
p s[0] #=> "\e"
s + "b" #=> Encoding::CompatibilityError: incompatible character encodings: ISO-2022-JP and UTF-8
//}
またダミーエ... -
Regexp
# fixed _ encoding? -> bool (208.0) -
正規表現が任意の ASCII 互換エンコーディングとマッチ可能な時に false を返します。
...//emlist[例][ruby]{
# -*- coding:utf-8 -*-
r = /a/
r.fixed_encoding? # => false
r.encoding # => #<Encoding:US-ASCII>
r =~ "\u{6666} a" # => 2
r =~ "\xa1\xa2 a".force_encoding("euc-jp") # => 2
r =~.......force_encoding("euc-jp") # => 0
r = /a/u
r.fixed_encoding? # => true
r.encoding # => #<Encoding:UTF-8>
r =~ "\u{6666} a" # => 2
begin
r =~ "\xa1\xa2".force_encoding("euc-jp")
rescue => e......# => Encoding::CompatibilityError
end
r =~ "abc".force_encoding("euc-jp") # => 0
r = /\u{6666}/
r.fixed_encoding? # => true
r.encoding # => #<Encoding:UTF-8>
r =~ "\u{6666} a"... -
String (132.0)
-
文字列のクラスです。 ヌル文字を含む任意のバイト列を扱うことができます。 文字列の長さにはメモリ容量以外の制限はありません。
...ト
End
# 終端記号がインデントされたヒアドキュメント
# シングルクオート、ダブルクオートとの併用も可能
<<-End
この行はヒアドキュメント (終端記号をインデントできる)
End
//}
===[a:mutable] 破壊的な変更
Ruby の String ク......#=> "プール"
s = "ruビー"
s[0..1] = "ル"
p s #=> "ルビー"
e = "言語".encode("EUC-JP")
u = "言語".encode("UTF-8")
p e.encoding #=> Encoding::EUC_JP
p u.encoding #=> Encoding::UTF_8
//}
より詳しく知りたい場合は、spec/m17......][ruby]{
s = "いろは"
a = s.encode("EUC-JP")
b = s.encode("UTF-8")
p a == b #=> false
s = "合".encode("EUC-JP")
p s + "\u{4f53}".encode("EUC-JP") #=> "合体"
p s + "\u{4f53}" #=> Encoding::CompatibilityError
//}
String#eql? はハッシュのキ......ト
End
# 終端記号がインデントされたヒアドキュメント
# シングルクオート、ダブルクオートとの併用も可能
<<-End
この行はヒアドキュメント (終端記号をインデントできる)
End
# 中身がインデントされたヒアドキュメント...