• ベストアンサー

RubyってUTF16コードに対応していますか?

Rubyで文字処理のプログラムを作ろうと思っているのですが、 RubyはUTF16コードに対応しているのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4852/10267)
回答No.1

しています。 対応エンコード一覧はこれ。 Encoding.list.map(&:to_s) => ["ASCII-8BIT", "UTF-8", "US-ASCII", "Big5", "Big5-HKSCS", "Big5-UAO", "CP949", "Emacs-Mule", "EUC-JP", "EUC-KR", "EUC-TW", "GB18030", "GBK", "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "ISO-8859-10", "ISO-8859-11", "ISO-8859-13", "ISO-8859-14", "ISO-8859-15", "ISO-8859-16", "KOI8-R", "KOI8-U", "Shift_JIS", "UTF-16BE", "UTF-16LE", "UTF-32BE", "UTF-32LE", "Windows-1251", "IBM437", "IBM737", "IBM775", "CP850", "IBM852", "CP852", "IBM855", "CP855", "IBM857", "IBM860", "IBM861", "IBM862", "IBM863", "IBM864", "IBM865", "IBM866", "IBM869", "Windows-1258", "GB1988", "macCentEuro", "macCroatian", "macCyrillic", "macGreek", "macIceland", "macRoman", "macRomania", "macThai", "macTurkish", "macUkraine", "CP950", "CP951", "stateless-ISO-2022-JP", "eucJP-ms", "CP51932", "GB2312", "GB12345", "ISO-2022-JP", "ISO-2022-JP-2", "CP50220", "CP50221", "Windows-1252", "Windows-1250", "Windows-1256", "Windows-1253", "Windows-1255", "Windows-1254", "TIS-620", "Windows-874", "Windows-1257", "Windows-31J", "MacJapanese", "UTF-7", "UTF8-MAC", "UTF-16", "UTF-32", "UTF8-DoCoMo", "SJIS-DoCoMo", "UTF8-KDDI", "SJIS-KDDI", "ISO-2022-JP-KDDI", "stateless-ISO-2022-JP-KDDI", "UTF8-SoftBank", "SJIS-SoftBank"]

kihonkana
質問者

お礼

回答ありがとうございます。 一応検索してみたんですが、わからなくって。 RDEをインストールして作ることにしました。 (先は長そうですけど)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • SJIS⇔UTF-8の文字コード変換

    SJIS⇔UTF-8の文字コード変換をするプログラムを作りたいのですが、簡単な方法があれば教えてください。 できれば、文字コードをケース文で判断して・・・のような処理ではないほうが、ありがたいです。

  • Rubyプログラムヘッダ部分の書き方

    度々すみませんが、他人のRubyプログラムを試しながら勉強しているのです。 今回の質問はプログラムの先頭の書き方です。ご存知の方にご教示を頂きたいのです。 ついでに、こちらの動作環境はLinux-Mint、Ruby1.9.3です。 次のはサンプルプログラムの先頭の5行です。  1 #!/usr/bin/env ruby  2 # -*- mode:ruby; coding:utf-8 -*-  3 require 'kconv'  4 require 'moji'  5 Encoding.default_external = "utf-8" 質問1: 2行目は処理する文字コードがUTF-8の指定に見えます。どんな場合に必要ですか。 実はあるプログラムをUTF-8のデータを処理するときに、2行目があると invalid multibyte char (UTF-8) のエラーが出ました。抜いたら正常処理します。 質問2: 3、4行目は、日本語処理のクラスを利用するためのライブラリ指定ですが、 使い分けがよく分からないのです。 質問3: 5行目はどんな場合に必要でしょうか。2行目と同じような役割に見えますが.... 初歩的な質問ばかりですが、どうぞよろしくお願いいたします。

    • ベストアンサー
    • Ruby
  • utf-8について

    こんにちは。 今、文字コードについて調べているのですが、utf-8がなぜプログラミングと相性が良いのか分かりません。 ここのサイトを調べていると、画面(SJIS)から文字を打ち、utf-8にコード変換して処理をする質問が多いように感じました。 なぜ、utf-16ではなく、utf-8なのかと思っております。 よろしくお願いします。

  • RubyでUTF8のコード値を文字に変換する方法

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

  • Ruby(on Windows) でUTF-8

    Windows上でRuby使っています。 NetBeansで勉強していて、ファイルはすべてUTF-8で書くようにしています。 以下のコードのように、あるファイルを保存するプログラムを書いて、日本語ファイル名で保存したとき(この場合、ファイル名はUTF-8の文字列になるんですよね。)、 (1)と、(2)で同じファイル名の出力を期待しているんですが、名前が変わってしまいます。なぜでしょうか。 Windows上では、ファイル名はShift-JISなどに変換してから保存しないとうまくいかないのでしょうか。 saving_folder = "C:/testrubyfolder/" filename = "ユニコードです" puts filename #←(1) open(saving_folder + filename , "w"){|file| file << "test" } puts Dir.entries(saving_folder) #←(2)

  • encode指定の表記について(Ruby 1.9)

    仕事でのデータ処理用にRubyで小さなプログラムを書いて使用しています。 今まで1.8系を使用していたのですが、そろそろ1.9系への移行をしたいと考えております。 そこで気になったのがソースの最初に書く # -*- coding: utf-8 -*- の表記です。 この"utf-8"の部分に書く文字コードの表記一覧(?)はどちらを参照すればよろしいのでしょうか? 例えば、私はWindows環境での使用になるのでシフトJISコードの場合が多いのですが、書き方として"SHIFT-JIS"、"Shift-JIS"、"SJIS"等のうち、どの表記が正解なのか判りません。 非常に初歩的な質問で申し訳ありませんが、ご教示いただければ幸いです。

    • ベストアンサー
    • Ruby
  • utf-8に対応しているエディター

    環境はxp、apache2、php5、Postgresql8.2です。 1台のPCをサーバ&クライアントにしています。 ただ今PHPとPostgresqlの勉強をしています。 いつも質問に答えてくれてありがとうございます。 現在、プログラムを書く時 「CPad for Borland C++ Compiler」というエディターを使用しています。 使い勝手は良いのですが 文字コード「utf-8」で 編集・保存することが出来ません。 utf-8に対応しているフリーソフトをご存じでしたら ご教示して頂けたら幸いです。

    • ベストアンサー
    • PHP
  • UTF-8とASCIIコードにおける互換性について

    UTF-8とASCIIはそのASCIIコードの範囲のおいて 互換性を持ちます。(と、書籍や多種な文献にはそういった記述があります) たとえば【A】という文字をUTF-8で符号化した際は【41】(16進数で) さらにASCIIコードでも【41】という値がAという文字に割り当てられています。 確かに、一件互換しているようにみえますが、UTF-8っていうことは最終的には Unicode上のコードポイントの値・・・つまり0x0041という値に復元?(というのでしょうか)するわけですよね? でそのUnicodeの文字集合上から復元したコードポイントに対応する文字を参照しAという文字をみつけてくると・・・。 これって【A】という文字をUTF-8で符号化した歳のバイト列はASCIIと一致しているけれど 結局Unicodeコードポイントに直した場合【00】という上位バイトが無駄にくっついてきて【0x0041】となり 互換性がなくなるのではとおもったのですが・・・。 これはどういう意味の互換性なのでしょうか? 識者の方ご教授ください。 お願い致します。

  • UTF-8とUTF-16について質問です。

    まず、【あ】という文字をUTF-16というエンコーディング方式で バイト配列化すると [0] => 66 [1] => 48 というバイト値が帰ってきます。 これはとりあえずC#で処理を行いました。 Encoding encode = Encoding.GetEncoding("UTF-16"); String value = "あ"; Byte [] byteData = encode.GetBytes(value); それでは【あ】という文字の文字集合のコードポイントは右記となります。【0x3042】 これは、出力された 66、48という数値を16進数に変換すると 66=>42 48=>30 となり、リトルエンディアン環境で 0x4230という16進数であらわされるようです。 この点も不思議なのですが今回知りたいのはUTF-16でエンコーディングされた バイト配列はこのように文字集合のコードポイントに復帰?させることができますよね? ではUTF-8でエンコーディングされた【あ】という文字の バイト配列 [0] => 227 [1] => 129 [2] => 130 というバイト配列を上記のような文字集合のコードポイントの値へ復帰させることは できるのでしょうか? それに伴いUTF-8でつかわれる文字集合もUTF-16と同じコードポイントなのでしょうか? 上記 1.UTF-8でエンコーディングされた文字列をバイト配列にした場合 元の文字集合に戻せるのか?戻せるならばその戻し方は? 2.UTF-8がさす文字集合とUTF-16がさす文字集合はおなじものですよね? 上記二点よろしくご教授ください。

  • フィルタリングゲートウェイCGIのUTF-8コードへの対応方法について

    フィルタリングゲートウェイCGIのUTF-8コードへの対応方法について 以下のサイトで公開されている「nogate」というフィルタリングゲートウェイについて、 UTF-8のコードを利用しているページで利用する場合に文字化けしてしまいます。 http://www.geocities.co.jp/Playtown-Denei/1097/cgi/nogate.htm 携帯で利用する場合は、DoCoMoは端末で文字コードを変換できますが、auはできないため 何とかCGI側で対応させたいと思っています。 どのような方法がベストでしょうか?

    • 締切済み
    • CGI

専門家に質問してみよう