SlideShare a Scribd company logo
文字数はおいくら?
(Ruby版)
@tsuda_ahr 2014/4/5 LTDD広島 #2
1.サロゲート文字の場合
puts "𩹉".length
※サロゲート文字とは、文字コードが
U+10000
以上の文字をいいます。(かなり嘘かも)
1.サロゲート文字の場合
こたえ
1
1.サロゲート文字の場合
サロゲート文字でも、
正しく文字数を答える模様。
2.合字の場合
puts "を゙".length
puts "が".length
puts "が".length
2.合字の場合
こたえ
2
2
1
2.合字の場合
合字の構成要素数が文字数として戻る。
3.異体字の場合
puts "辻".length
puts "辻󠄀".length
3.異体字の場合
こたえ
1
2
4.C#だとこんな感じ
Ruby C#
サロゲート 𩹉
(U+29E49)
1 2
合字
を゙
(U+3092 U+3099)
2 2
が
(U+304B U+3099)
2 2
が
(U+304C)
1 1
異体字
辻
(U+8FBB)
1 1
辻󠄀
(U+8FBB U+E0100)
2 3
内部がUTF-16なので、
サロゲート領域(U+10000以上)
の文字は 2 でカウントされる。
5.結論
Ruby 結構優秀!
(割と素直)
(というか内部が多分UTF-8)
蛇足) 気にしてほしいこと
 String.Length は処理系によって値が異なることがある。
 内部はどういうデータで保持しているかを想像してほしい。
 入力するユーザー(一般の人)は無慈悲だ。
# システムの都合は察してくれない
おわり
ありがとうございました

More Related Content

PDF
実信号マザーウェーブレットを用いたスネア音の検出
PDF
Acl yomikai, 1016, 20110903
PDF
大規模常識知識ベース構築のための常識表現の自動獲得
PPT
Tese
PPTX
Didática geral tendências pedagógicas
PDF
DidáTica Volume 1 2 e 3
PPT
Didática De 1549 Ate Atualidade
PPTX
O papel da didática na formação do professor
実信号マザーウェーブレットを用いたスネア音の検出
Acl yomikai, 1016, 20110903
大規模常識知識ベース構築のための常識表現の自動獲得
Tese
Didática geral tendências pedagógicas
DidáTica Volume 1 2 e 3
Didática De 1549 Ate Atualidade
O papel da didática na formação do professor

More from tsudaa (18)

PDF
Json型の使い方
PDF
ぬぎんくす問題
PDF
Windows でも時刻合わせがしたい!
PDF
Python と私の事情
PDF
真理とは何か
PDF
Excelのどうでもよいtipsの紹介
PDF
MySQL のユーザー定義変数と RDB のココロ
PDF
HiroshimaJUG の 「Java8 Lambda ハンズオン with すごい広島」 を5分で振り返る
PDF
ドメイン名の話 (データベース/SQL)
PDF
スターマークの話
PDF
Powershell のセキュリティ (大都会ver)
PDF
昼の12時は午○何時?
PDF
PowerShell 紹介
PDF
全角チルダ問題
PPTX
資格は役に立つか
PDF
○○型言語と呼ばれるために備えるべき最低限の条件についての検討
PDF
法律の読み方とか
PDF
C++入門?
Json型の使い方
ぬぎんくす問題
Windows でも時刻合わせがしたい!
Python と私の事情
真理とは何か
Excelのどうでもよいtipsの紹介
MySQL のユーザー定義変数と RDB のココロ
HiroshimaJUG の 「Java8 Lambda ハンズオン with すごい広島」 を5分で振り返る
ドメイン名の話 (データベース/SQL)
スターマークの話
Powershell のセキュリティ (大都会ver)
昼の12時は午○何時?
PowerShell 紹介
全角チルダ問題
資格は役に立つか
○○型言語と呼ばれるために備えるべき最低限の条件についての検討
法律の読み方とか
C++入門?
Ad