- ベストアンサー
RubyってUTF16コードに対応していますか?
Rubyで文字処理のプログラムを作ろうと思っているのですが、 RubyはUTF16コードに対応しているのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- SJIS⇔UTF-8の文字コード変換
SJIS⇔UTF-8の文字コード変換をするプログラムを作りたいのですが、簡単な方法があれば教えてください。 できれば、文字コードをケース文で判断して・・・のような処理ではないほうが、ありがたいです。
- ベストアンサー
- C・C++・C#
- 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
- 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
お礼
回答ありがとうございます。 一応検索してみたんですが、わからなくって。 RDEをインストールして作ることにしました。 (先は長そうですけど)