たくろぐ!

世界一のチラ裏

JIS X 0213がよくわからなかったので調べてみた【文字コードの歴史やサロゲートペア文字】

はじめに

文字コード難しすぎ問題。

とりあえずUnicode最高!utf8最高!って言っとけばいいんでしょ状態なので少し調べてみた。

http://j-lyric.net/artist/a0006e0/l00abdb.html

なぜ調べたのか

もともとは
「JSでJIS X 0213コードの第2水準漢字(例外あり)までのバリデーションを実装したい(実はもっとちゃんとした質問だったけど割愛)」
という質問をもらっていたんだけど、質問の意図は何だろうとか、よくある文字コード問題ってなんだっけということを考えてみた。

JIS X 0213コード表(全コード)

www.asahi-net.or.jp

Wikipediaによれば、

JIS X 0208を拡張した規格で、JIS X 0208が規定する6879字の図形文字の集合に対して、日本語の文字コードで運用する必要性の高い4354字が追加され、計1万1233字の図形文字を規定する。(中略)JIS X 0213JIS X 0208を包含し更に第三・第四水準漢字などを加えた上位集合である。

ということらしい。

まぁほぼ意味不明。

文字コードの歴史

そもそも文字コードって何?おいしいの?って言う人向けに文字コードをマスターするには歴史から知るといい。

今でこそ世界中の文字を表現できるUnicodeでアプリの国際化が実現できているけど、それまでは混沌を極めたのが文字コードの歴史だ。

www.ndl.go.jp

www.ndl.go.jp

www.ndl.go.jp

文字コード文字コードというけど文脈によって符号化文字集合のことだったり、文字符号化方式のことだったりするので頭のなかで今はどっちの意味で話しているのかを切り分けて考えられるようになると理解が進むかも。

買ったことないけど以下の書籍は身の回りでおすすめしている人が多いので掲載しておく。

よくある文字コード問題

アプリ側の文字コードとDB側の文字コードは違うので(詳しくはよくわかってない)、古い時代のMySQLを使っていたりすると4バイト文字(サロゲートペア文字)が悪さをしてしまったりする。

detail.chiebukuro.yahoo.co.jp

www.softel.co.jp

対処法としてはMySQLのcharsetを utf8mb4 にすることで対応できる(MySQL5.5以降)。

tmtms.hatenablog.com

techracho.bpsinc.jp

charsetがutf8 の場合、寿司の絵文字とビールの絵文字が同一文字と見なされてしまうことを「寿司ビール問題」とかって言う。

もしどうしてもサロゲートペア文字をフォームではじきたいという場合には以下のような実装をする必要がある。

qiita.com

teppeis.hatenablog.com

まとめ

実際にこの問題に出くわしたことはないし、これで完璧だと言うつもりはないけど聞かれたら「これが怪しい」とか「仮説としてこう考えるとこうなんじゃね?」という勘どころを養うのは大事だと感じた。

質問する側はその質問の意図がわかってないことが多いので「質問の意図はなんだろう?」という自問自答を繰り返しながら仮説検証していきたい。

MacBook Pro (15-inch, 2017)が修理から返ってきた

キーボード修理プログラムに出してみた

先日渋谷でリニューアルしたApple Storeに行ってきた。

なぜ行ったのかというとタイトルの通りだが、↓矢印ボタンが押した後に下にくっついた感じがたびたびあったのと、

英数キーが効かないことがあったのと、全てのキーボードが全く反応しなくなったことが1回あったので去年発表されたキーボード修理プログラムに持っていったからだ。

www.apple.com

先週の土曜2/9の18時にGenius Barで診てもらって、その場で修理対象で保証期間内なのでよければそのまま修理に出しますとのことだったのでそのままお願いした。

月曜が祝日で今日火曜日に届いたので渡してから自宅に届くまで丸3日以内という爆速対応でした。

リペアセンターどこにあるんだろうと思って調べたらこの辺にあるみたい。

新大久保とかあまり行ったことないけど、雑居ビルの3階にあるみたいだな。

www.applerepair.co.jp

修理日が2/11なので祝日にご苦労様ですm( )mという感じです。

(さすがに3営業日くらいはかかると思ってたという言い訳をさせてくださいm( )m)

ヤマト運輸のパソコン宅急便 BOX Aで届いた

梱包とかはこんな感じ↓

starrrrr.com

修理報告書以外にこんなやつが入ってた↓

長期間保管する場合はバッテリーの残量を50%まで減らしてから保存するといいらしい。

製品を末長くご使用いただくために1
製品を末長くご使用いただくために1

製品を末長くご使用いただくために2
製品を末長くご使用いただくために2

修理報告書の内容

修理報告書
修理報告書

今回はキーボードのみだと思っていたけど、どうやらバッテリーも交換してくれたみたい。

バッテリー充電回数2回
システム情報

Apple Storeに持っていった時に充放電回数が1,000回ちょっとで消耗していると見なされると言われた。

見なされるというのは外に持っていっても電源に挿しておかないとすぐにバッテリー切れになるという目安らしい。

support.apple.com

すぐに使えなくなるわけではないから安心して。

外観

外観はそもそも落としたこともないし、それほど乱暴に使っていなかったから綺麗だったと思うが、それでも新品に近い感じになった。

あとボタンも新しくなった?

ちょっと自信がないからわかる人いたら教えてくださいm( )m

と思ったら特に変わってなさそうだった。

勘違いでしたー。

applech2.com

キーボード修理プログラムの対象かどうか

さて、今回僕がやってもらったキーボード修理プログラムの対象機種は以下の通り。

MacBook (Retina, 12-­inch, Early 2015)
MacBook (Retina, 12­-inch, Early 2016)
MacBook (Retina, 12-­inch, 2017)
MacBook Pro (13­-inch, 2016, Two Thunderbolt 3 Ports)
MacBook Pro (13-­inch, 2017, Two Thunderbolt 3 Ports)
MacBook Pro (13-­inch, 2016, Four Thunderbolt 3 Ports)
MacBook Pro (13-­inch, 2017, Four Thunderbolt 3 Ports)
MacBook Pro (15-­inch, 2016)
MacBook Pro (15-­inch, 2017)

保証があるかどうかはシリアルNo.を控えた上で以下のリンクにて確認してください。

checkcoverage.apple.com

まとめ

AppleさんiPhone売れてないようなのでそろそろ新しいiPhone買ってお布施するかー?

できれば持ち運びできるモニター的なものを出して欲しい。

japanese.engadget.com

news.mynavi.jp

やはりiPad Proをサブディスプレイにするのは無駄かぁ、、、

iPad Proの薄さのバッテリー内臓ディスプレイはよ。