ユニコードと文字を相互変換する

rubyで文字の入力チェックとかゴニョゴニョやってたのでメモ

# ruby

# 文字をユニコードのコードポイントに
''.unpack('U').first
# => 12354

# 16進数
12354.to_s(16)
# => "3042"

# ユニコードのコードポイントを文字に
[0x3042].pack('U')
# => "あ"


ついでにpythonでどんな感じかちょっとだけ調べた

# python

# 文字をユニコードのコードポイントに
print ord(u'あ')
# => 12354

# 16進数
print "%x" % 12354
# => "3042"

# ユニコードのコードポイントを文字に
print unichr(0x3042)
# => あ


emacs lisp

; emacs lisp

; 文字をユニコードのコードポイントに
?あ		                     	; => 12354

; 16進数
(format "%x" ?あ)			; => "3042"

; ユニコードのコードポイントを文字に
"\x3042"				; => "あ"