Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

文字コード勉強会 Slide 1 文字コード勉強会 Slide 2 文字コード勉強会 Slide 3 文字コード勉強会 Slide 4 文字コード勉強会 Slide 5 文字コード勉強会 Slide 6 文字コード勉強会 Slide 7 文字コード勉強会 Slide 8 文字コード勉強会 Slide 9 文字コード勉強会 Slide 10 文字コード勉強会 Slide 11 文字コード勉強会 Slide 12 文字コード勉強会 Slide 13 文字コード勉強会 Slide 14 文字コード勉強会 Slide 15 文字コード勉強会 Slide 16 文字コード勉強会 Slide 17 文字コード勉強会 Slide 18 文字コード勉強会 Slide 19 文字コード勉強会 Slide 20 文字コード勉強会 Slide 21 文字コード勉強会 Slide 22 文字コード勉強会 Slide 23 文字コード勉強会 Slide 24 文字コード勉強会 Slide 25 文字コード勉強会 Slide 26 文字コード勉強会 Slide 27 文字コード勉強会 Slide 28 文字コード勉強会 Slide 29 文字コード勉強会 Slide 30 文字コード勉強会 Slide 31 文字コード勉強会 Slide 32 文字コード勉強会 Slide 33 文字コード勉強会 Slide 34 文字コード勉強会 Slide 35 文字コード勉強会 Slide 36 文字コード勉強会 Slide 37 文字コード勉強会 Slide 38 文字コード勉強会 Slide 39 文字コード勉強会 Slide 40 文字コード勉強会 Slide 41 文字コード勉強会 Slide 42 文字コード勉強会 Slide 43 文字コード勉強会 Slide 44 文字コード勉強会 Slide 45 文字コード勉強会 Slide 46 文字コード勉強会 Slide 47 文字コード勉強会 Slide 48 文字コード勉強会 Slide 49 文字コード勉強会 Slide 50 文字コード勉強会 Slide 51 文字コード勉強会 Slide 52 文字コード勉強会 Slide 53 文字コード勉強会 Slide 54 文字コード勉強会 Slide 55 文字コード勉強会 Slide 56 文字コード勉強会 Slide 57 文字コード勉強会 Slide 58 文字コード勉強会 Slide 59 文字コード勉強会 Slide 60 文字コード勉強会 Slide 61 文字コード勉強会 Slide 62 文字コード勉強会 Slide 63 文字コード勉強会 Slide 64 文字コード勉強会 Slide 65 文字コード勉強会 Slide 66 文字コード勉強会 Slide 67 文字コード勉強会 Slide 68 文字コード勉強会 Slide 69 文字コード勉強会 Slide 70
Upcoming SlideShare
文字コードのお話
Next
Download to read offline and view in fullscreen.

3 Likes

Share

Download to read offline

文字コード勉強会

Download to read offline

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

文字コード勉強会

  1. 1. 文字コードの基礎
  2. 2. Agenda 1. 文字コードの歴史 2. 文字コードの注意点 3. もし文字化けしたら
  3. 3. 文字コードの歴史
  4. 4. 日本語文字コードの種類 ISO-2022-jp (JIS) Shift-JIS EUC-JP Unicode
  5. 5. 種類が多いですね・・・
  6. 6. なぜ、そんなに派生がある の?
  7. 7. 1990以前は文字コードは ASCIIってやつしか無かった。
  8. 8. ASCIIは7ビット文字で 128個しか表現できない。 コード範囲(16進) 内容 0x00~0x1F 制御文字(control characters) 0x20 空白(SP) 0x21~0x7E 図形文字(graphic characters) 0x7F 制御文字DEL(delete)
  9. 9. 漢字って何種類あるんだっ け?
  10. 10. 128文字?
  11. 11. 足りねぇじゃん!!
  12. 12. そこで、1990年ごろ JISという文字コードが作られま した。
  13. 13. JISというのは・・・ ASCIIでは7ビットしかねぇか ら、2バイトにしちゃえば、よく ね? 2バイト文字の誕生です! 別名でISO-2022-jpって言われているやつです ね。
  14. 14. しかし、JISにも問題 が・・・
  15. 15. JISはカタカナとか漢字とか の文字コード範囲が被って る。 コード範囲(16進) 内容 0x00~0x1F、0x7F 制御コード 0x20~0x7E ASCII文字 0x21~0x5F 半角カタカナ 0x2121~0x7E7E 漢字 ( 第1バイト・第2バイトとも 0x21~ 0x7E ) 0x2121~0x7E7E 補助漢字 ( 第1バイト・第2バイトとも 0x21~ 0x7E ) 見事に被ってますね!
  16. 16. あれ?だめじゃね?
  17. 17. 解決するために、エスケープ 文字を準備しました! コードの範囲が被っているんで、1つの文字の先頭と最後に区切りを入れています。 ※ASCIIとの互換を保つために、ASCIIと同じ文字コードの場合は区切り文字は入らない 例:[日本語START]こ[日本語END][半角カタカナSTART]ア[半角カタカナEND]
  18. 18. じゃーいいじゃん
  19. 19. いや、ダメなんです。
  20. 20. エスケープが1つでも欠損する と全部文字化けする可能性があ る。
  21. 21. JISは必ずエスケープで始まりエ スケープで終わるのが前提! でも、途中でエスケープが無く なると、文字化けしちゃう/ (^o^)\ [日本語START]こ[日本語END][半角カタカナSTART]ア[半角カタカナEND] がもし [日本語START]こ[半角カタカナSTART]ア[半角カタカナEND] で、[日本語END]が無かったら、残りの文字コードは全て日本語扱いになってしまい、 残りの全部文字化けしてしまう。
  22. 22. 他にも、エスケープが入ること により、文字コードの数が増え るため、処理が遅くなってしま う。
  23. 23. そこで、解決するために誕 生したのが・・・
  24. 24. Shift-JIS EUC-JPもありますが、無視します。
  25. 25. Shift-JISは1バイトを8ビットに して1つ繰り上げて文字コード が被らないようにしました。 1 バイト目 文字の種類 0x00~0x1F、0x7F 制御コード 0x20~0x7E ASCII文字 0xA1~0xDF 半角カタカナ 0x81~0x9F、0xE0~0xFC 2 バイト目 0x40~0x7E、0x80~0xFC 漢字
  26. 26. ・・・さすがMicrosoft 天才の降臨です。
  27. 27. あの問題が無ければの話で すが・・・
  28. 28. 有名な5C問題です。
  29. 29. なぜか2バイト目に「5C」を 使ったのかっ!
  30. 30. お前のせいでエスケープし なきゃならないんだっ!
  31. 31. 5C問題とは、 ASCIIと「5C」はバックスラッ シュなので、多くのプログラム 言語ではエスケープに扱いに なってしまいます。・・・あと は分かるな
  32. 32. ちゃんと回避してあげま しょ
  33. 33. 基本的には文字列の後ろにバック スラッシュをつけます。 「表」のような感じです。 面倒臭ければ 「magic_quotes_gpc」で全部エ スケープって事もできます。
  34. 34. ISO-2022-JP (RFC 1468、俗に「JIS コード」と呼ばれる文字コード。JIS X 0208 対 応) ISO-2022-JP-1 (RFC 2237、JIS X 0208 と JIS X 0212 に対応) ISO-2022-JP-2 (RFC 1554、多言語拡張。JIS X 0208、JIS X 0212、GB 2312、KS X 1001、ISO/IEC 8859-1、ISO/IEC 8859-7 対応) ISO-2022-JP-3 (JIS X 0213:2000 対応) ISO-2022-JP-2004 (JIS X 0213:2004 対応) ISO-2022-CN (RFC 1922、GB 2312、CNS 11643 [第一字面・第二字面]対応) ISO-2022-CN-EXT (RFC 1922、GB 2312、ISO-IR-165、CNS 11643 [第一字面から 第七字面]対応) ISO-2022-KR (RFC 1557、KS X 1001 対応) EUC-JP (JIS X 0208 対応) EUC-JISX0213 (JIS X 0213:2000 対応) EUC-JIS-2004 (JIS X 0213:2004 対応) EUC-KR (RFC 1557、KS X 1001 対応) GB2312 (別名 EUC-CN。GB 2312 対応) GBK (Microsoft Windows Codepage 936 対応) GB18030 (GB 18030 対応) EUC-TW (CNS 11643 対応) Shift_JIS (JIS X 0208 対応) Shift_JISX0213 (JIS X 0213:2000 対応) Shift_JIS-2004 (JIS X 0213:2004 対応) Windows-31J (Microsoft Windows Codepage 932 対応) x-Mac-Japanese (MacJapanese 対応) ここから文字コードが乱立し ていきます。
  35. 35. おいおいおい、お前ら勝手にや り過ぎだし、国際化とか全然考 えてないだろ?
  36. 36. ということで、救世主登場
  37. 37. UTF-8(Unicode)
  38. 38. 全世界文字を一つのコードで 表現出来ればいいよね!
  39. 39. でも、2バイトで足りるな?
  40. 40. とりあえず4バイトぐらいにし とこ
  41. 41. UTF-8(Unicode)の誕生 UTF-8を2バイト文字とか言っちゃうと恥ずかしいことになります。
  42. 42. WEBプログラム組むときは UTF-8だけでいいです。 新規に限りますが・・・
  43. 43. 色々な文字コードの注意 事項。
  44. 44. ASCIIと日本語文字コード
  45. 45. 実は、ASCIIの上位互換で、日 本語文字コードが作られてい ます。
  46. 46. 簡単に言うと、上位互換だから、 文字コードが違っても、プログラ ムなどは動作します。(文字化け はしますが)
  47. 47. しかし、 UTF16は何も動かないです。
  48. 48. Windowsの内部コードはUTF-16ら しいので、メモ帳とかで 「Unicode」とか指定するとUTF16になっちゃいます。 (サクラエディタでもありますの で気をつけて下さい。)
  49. 49. UTF-8の落とし穴
  50. 50. プログラムにBOMが入る と色々と問題が起きる。 http://fusigidane.seesaa.net/article/129173506.html
  51. 51. Unicodeとかの判定などで使 われるけど、本来UTF-8には BOMは使われない。 (どっちかというとUTF-16 に使用される。)
  52. 52. 普通だったらBOMなんぞ 入らない。
  53. 53. でも・・・
  54. 54. Windowsの内部コードっ てなんでしたっけ?
  55. 55. UTF-16でしたよね?
  56. 56. そうですね。 Windowsのメモ帳です ね。
  57. 57. メモ帳で「UTF-8」で設定し てもBOMありになります。 Windowsのメモ帳は禁止で す。 そもそもWindowsのメモ帳で開発するやつを見てみたい。
  58. 58. 他にも「〜」とかの問題 点もありますが、 自分で調べて下さい。
  59. 59. メール
  60. 60. メールの標準は ISO-2022-JP(JIS)です。
  61. 61. 最近はUFT-8とかにも対応してき てますが、めっちゃ古いメールク ライアント使ってる場合は化けし ます。 可能な限りISO-2022-JPがいいか もしれません。
  62. 62. WEB開発で文字化けした時の対処
  63. 63. 1.まず、エディタを怪しめ
  64. 64. 大体5割が原因です。 必ず文字コードを合わせま しょう。 BOMが入ってないか?とかも 見たほうがいいですね!
  65. 65. 2.サーバーを怪しめ
  66. 66. もしかしたらApacheの文字コード が変わってるかもしれません。
  67. 67. 3.DBを怪しめ
  68. 68. 新規開発だと結構やっちゃいま す。 ちゃんとDBも文字コードを合わせ ましょう。
  69. 69. 4.プログラムを怪しめ
  70. 70. 実は自分がハマった事があるんで す。。。 ライブラリが、UTF-8対応じゃな くて半日ぐらいハマりました。
  • TsubasaWingOmi

    Mar. 7, 2020
  • ShunSonohara

    Oct. 18, 2016
  • SatoshiKanda

    Jul. 26, 2016

Views

Total views

5,677

On Slideshare

0

From embeds

0

Number of embeds

700

Actions

Downloads

17

Shares

0

Comments

0

Likes

3

×