#author("2022-01-05T06:46:11+00:00","default:hotate","hotate")
#author("2023-10-22T09:42:36+00:00;2022-01-05T06:46:11+00:00","default:hotate","hotate")
#contents
&tag(Ruby, utf8, 文字コード);
&tag(Ruby,utf8,文字コード);


* [[utf-8]] [#f8a61d8b]
** v1.x [#l15179f7]
- コメント
-- 基本的に[[Ruby]] 1.x時代の設定なので、下記のオプション指定は不要。(2021/05/07)
- [[Windows環境でUTF-8をベースに使用する - 日本語と文字コード - Ruby入門>http://www.rubylife.jp/ini/japan/index5.html]]
 UTF-8を使用しますのでプログラムの先頭行に「#! ruby -Ku」を指定しておきます。
- [[コマンドラインオプションで文字コードの指定 - 日本語と文字コード - Ruby入門>http://www.rubylife.jp/ini/japan/index2.html]]
 ruby -Ku プログラムファイル名
- [[WindowsでEncoding.default_externalをUTF-8にするには - すがブロ>http://sugamasao.hatenablog.com/entry/2013/08/24/224521]]
 set RUBYOPT=-EUTF-8でエンコーディングを指定すれば良いのでした。
- [[irbでマルチバイト文字を扱う - Qiita>https://qiita.com/yusabana/items/83c179a109e59bdef092]]
 SyntaxError: (irb):1: invalid multibyte char (US-ASCII)
 export LANG=ja_JP.UTF-8

** 1.9 [#kd2bcd11]
- [[Ruby 1.9 で日本語 (UTF-8 の文字列) を正しく表示させる方法 - さよならストレス>http://d.hatena.ne.jp/wwwcfe/20101229/ruby19_encoding]]
 Windows 環境でコマンドプロンプトを使って日本語を表示させようとして躓いたのでメモ。ソースコードを UTF-8 で書きたい人を対象にしています。

* エンコーディング [#c42707d5]
- [[Rubyでのディレクトリ・ファイル操作>https://zenn.dev/kunosu/articles/7e01a31644575d0d50c2]]
 引数でパスを渡したとき
 - 文字コードをutf-8にする
-- コメント:[[Windows10]], ruby 2.6.8で確認したところデフォルトのエンコーディングは"Windows-31J"だった。(2022/01/05)
- [[Rubyのエンコーディング - @tmtms のメモ>http://tmtms.hatenablog.com/entry/20120812/ruby_encoding]]
 # CP932 で書かれたファイルを読み込んで UTF-8 文字列に変換する
 File.open('cp932.txt', 'r:cp932:utf-8').gets   # UTF-8 エンコーディング文字列
- [[Rubyのエンコーディングその2 - @tmtms のメモ>http://tmtms.hatenablog.com/entry/20120902/ruby_encoding]]
 異なるエンコーディングであれば、String#encode でエンコーディングを変換する時にオプションに :invalid=>:replace, :replace=>'?' を指定すれば
 不正な文字を置換できます。
- [[Ruby 2.1.0 に追加される不正なバイト列を除去する String#scrub の紹介 - sonots:blog>http://blog.livedoor.jp/sonots/archives/34702351.html]]
 ruby 2.1.0 には不正なバイト列を代替文字に置き換える String#scrub メソッドが追加されました。
 @hsbt 氏が string-scrub という gem を用意してくださっているので、ruby 2.0 でもこの gem をインストールすれば利用できます。


* スクリプトエンコーディング (utf-8) [#l7b8facb]
- [[Ruby - 衝撃の事実!? "# -*- encoding: utf-8 -*-"じゃなくてもいいんです! - Qiita>http://qiita.com/jnchito/items/8f44a3c52d4669fefa93]]
 実は # coding: utf-8 だけでもOKなんです。
- [[スクリプトエンコーディングをUTF-8にしてRuby 1.9のマジックコメントを不要にする -- ぺけみさお>http://www.xmisao.com/2014/03/18/set-script-encoding-by-bashrc.html]]
 Ruby 2.0ではデフォルトのスクリプトエンコーディングがUTF-8となり、大抵の環境でマジックコメントは不要になった。

* ファイルIO [#j87abb01]
- [[OSとRubyスクリプトの文字コードが異なる場合の対策 | もっとクールにプログラミング>http://pgnote.net/?p=211]]
 Windowsでは日本語ファイルパスにも注意が必要

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS