文字(≠文字列)のコードポイントを数字として取得するには

文字からUnicodeの符号位置(コードポイント)を数字として取得する方法。逆に符号位置の数字から文字に変換するには chr を使う。

Scala

Char型をIntにキャストすればよい。

println('A'.asInstanceOf[Int]) // => 65
println('あ'.asInstanceOf[Int]) // => 12354

Unicodeの拡張領域の文字はJVM上では2つのchar型として表現されるので、この方法では拡張領域に対応できない。

PHP

ord関数を利用すればよいが、これは実際には文字列をバイナリの配列と見たときの最初の8ビットを整数にしているだけなので、マルチバイトには対応していない。

echo ord('A');
// => 65

// UTF-8の環境で実行したとき
echo ord('あ');
// => 227
// `あ` がUTF-8では227,129,130という3バイトになるため

ord 関数 | PHP Manual
http://php.net/manual/ja/function.ord.php

Python

ord という関数に長さ1の文字列を渡す。2文字以上渡すとエラーになる。

Python2での例

print ord("A")
# => 65

# 以下は u を付けないとエラーになる
print ord(u"あ")
# => 12354
print ord(u"𪘚")
# => 173594

Python3での例

print(ord("A"))
# => 65

print(ord("あ"))
# => 12354
print(ord("𪘚"))
# => 173594

Ruby

p "A".ord
# => 65
p "あ".ord
# => 12354
p "𪘚".ord
# => 173594

Perl

use utf8;

print ord("A"); # => 65
print ord("あ"); # => 12354 (0x3042)
print ord("𪘚"); # => 173594 (0x2A61A)
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。