備忘録である。
先日、Javascriptを使った文字の変換について触れる機会があったので、他の言語ではどうか?と思い、調べてみた。
Javascript
まずはJavascriptから。
String.prototype.charCodeAtはUnicodeを10進数に変換するStringメソッドであり、
String.fromCharCode()はUnicodeの値の数のシーケンスを文字列に変換するStringの静的メソッド。
Mozillaのページを見るとこんな記述があるので、一応貼っておく。
String.fromCharCode() - JavaScript | MDN
fromCharCode は String の静的メソッドなので、自分で生成した String オブジェクトのメソッドではなく、常に、String.fromCharCode() を使用するようにしてください
書いていく。
str = "あ" str.charCodeAt() // 12354 String.fromCharCode(12354) // あ String.fromCharCode(12354 + 96) // ア String.fromCharCode( 0x2600, 0x2601, 0x2602, 0x2603 ); // "☀☁☂☃"
※値に96足すと、ひらがな→かたかなになる(16進数で"0x60")。
下記を眺めると勉強になる。
Python
str = 'あ' ord(str) # 12354 chr(12354) # あ chr(12354 + 96) # ア wheather =[0x2600, 0x2601, 0x2602, 0x2603] for i in wheather: chr(i) '☀' '☁' '☂' '☃'
Ruby
str = "あ" str.ord # 12354 12354.chr("utf-8") # あ (12354+96).chr("utf-8") # ア wheather = [0x2600, 0x2601, 0x2602, 0x2603] => [9728, 9729, 9730, 9731] for i in wheather do p i.chr("utf-8") end "☀" "☁" "☂" "☃" => [9728, 9729, 9730, 9731]
Perl
Perlはこのポストで初めて書くので、もしかしたら書き方が間違っているかも。
もし間違っていましたらご指摘いただけると幸いです。
use utf8; $str = ord("あ"); print $str, "\n"; # 12354 $ch = chr 12354; print $ch, "\n"; # あ $ch2 = chr(12354+96); print $ch2, "\n"; # ア @weather = (0x2600 .. 0x2603); foreach $tmp (@weather){ print chr $tmp,"\n"; } ☀ ☁ ☂ ☃
他の言語でも同じように後日書いてみようと思う。
言語毎の書き方の違いを知るのも良い勉強になりますね。