メシのタネ

Webプログラミング 備忘録

  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む
  • 普通の会社で2年普通に働いて思う事

    えらい寒くなりました。文句言いながらも現職を続けて2017年12月1日にめでたく2年がたちました。分かりやすいが乱暴に言えばITドカタと呼ばれる業界に入って案件のヒエラルキーの無慈悲さを痛感しながらも、それでもしょうがないと頑張る人たちに心を打たれながら「じゃあ俺も」と頑張れない自分に挫折して、とあ[...]

    続きを読む
  • jQueryUiのDatepicker利用時にminDate設定するとバグる件

    題名の通りなんですが、DatepickerでminDate使うとバグります。また後でキャプチャ見て貰いますけど、灰色の部分が、minDateで設定した日付が反復して出るようになるんですね。こういうの気が付かない人がいるかも知れませんが、ChoromeでminDate設定してる人は気にしてみてくだ[...]

    続きを読む

文字コードについて

sukotelishuhuro
WordFes2014で登壇させて貰えるということで、
スライドの資料をもうちょっと強力にしようと文字コードについて調べていてたら
迷宮に迷い込んだので、調べたことをメモっていきます。
割と走り書きなので、結構違うとこあるかもしれませんが、
生暖かく教えていただけると嬉しいです。

文字コードについて

PCは文字を認識することができないので、
文字コードというコードに置き換えて
最終的に二進数に置き換えらてコンピュータで処理されます。

最初はメーカー間で文字コードの取り決めが決まっていたので、
通信した際に文字化けしていました。
なので、文字コードを統一しようという流れになりました。

これで一件落着に見えたのですが、
今度はインターネットが普及するにつれて、
外国と通信することになると今度は言語が違ったりして
文字化けがおこるようになりました。

さらに、今でもこれは完全には解消されていません。

文字コードとは

文字コードとの対応規則をまとめたものです。
パソコンにある合言葉を言うと「あ」を示すような感じです。

文字コードセットとは

どんな文字をどれくらい扱うのかを取り決めたものです。

例えば日本語なら、「ひらがな」と「漢字」ですが、
ひらがなは50個で済みますけど、漢字だと一杯ありすぎて
どの範囲まで扱えば良いか分かりません。

なので、常用漢字を漢字とするといった取り決めが必要になります。
こういった取り決めを元に揃えた文字に対応させた数値を
表の様に表したものが文字コードセットです。

取り決めを元に集めた文字の事を(文字集合)と言い
それに数値を割り当てたものを(符号化文字集合)と言います。

符号化

文字集合に対しての数字が
日本語コードの場合そのまま使われることはほぼ無くて
目的や処理に応じて使う事が多いです。

この際にデータに応じた形式に変換するのですが、
これを符号化と言います。符号化はエンコードとも言います。

ASCIIみたいに半角英数と基本的な記号しかない文字コードであれば
符号化せずに扱う事ができます。

符号化の方式

日本語の符号化方式には「Shift_JIS」「EUC-JP」「UTF-8」等があります。
これは文字コードセットの数値を何に対応させるか決めたものです。
同じ文字コードセットであっても、符号化形式によって異なる形式に符号化されます。

文字化け

符号化は文字コードによって変わるので、
文字コードによって変わります。文字コードA用に符号化されたビット列を
文字コードBが参照した時に文字化けがおきます。

Unicode

今はHP見ててもCharsetがUTF-8が一般的であるように、
Unicodeが符号化方式として採用されるケースが多い様に思います。
なのでUnicodeが何かだけ覚えておきたいと思います。

unicodeの符号化方式は、
山といえば、U+5C71ですが、
符号位置の整数値0x5C71を
UTF-16で符号化すると5C71と2バイトになります。
UTF-8で符号化するとE5B1B1という3バイトになります。

このように、整数値の符号位置を符号化形式によって
バイト列に符号化することができます。

おわり

読んだ記事を自分に分かるように書きましたが、今分かってても
あさってくらいに見たら全然分からなくなりそうです。
どうもお付き合い頂きありがとうございました。

参考サイト

文字コードとは(起訴からわかる!パソコン入門・再入門様)

UnicodeとUTF-8とUCS-2の関係 ――符号化文字集合? 文字符号化方式?(WEB+DB PRESS plus様)

参照先の方が正確だし分かりやすいかもしれません。
もし気になってる方が居たらぜひ。

関連記事

コメントをお待ちしております