MySQLでは絵文字の扱いに注意2018.10.192019.09.20Webスキルよこのじ(@yokonoji_work)です。HTMLの記述でお馴染みの文字コードutf-8ですが、レンタルサーバーの設定でutf-8mb4というものを見かけましたので、その違いを確認してみました。この違いを知っておかないと、MySQLにおける文字コードの不具合に悩まされるかもしれません。この機会に文字コードutf8とutf8mb4の違いを確認しておきましょう。?utf-8は世界で最も普及している文字コードです。アルファベット、数字、記号といった基本的な文字を表すASCIIコードに、さらに世界中のあらゆる文字(例えばハングル文字やアラビア文字など)を加えた文字の集合体をUnicodeといいます(これには絵文字なども含まれています)。utf-8はUnicodeに含まれる文字を符号化したもの(=コードと対応させたもの)になります。「あ」なら「E38182」といったようにコードと対応しています。Shift-JISなどの日本語を扱える文字コードはありますが、他の文字コードで書かれた文字が文字化けするなどの問題から文字コードを使い分ける必要がありました。いった問題は、utf-8という世界中の文字を一つの文字コードで扱えるようになった今ではほとんどなくなっています。?utf-8mb4はデータベースMySQLで扱うための文字コードです。utf-8は1~4バイトで文字を表現しますが、MySQLでは3バイトの文字までしか扱えないため、4バイトの文字は使用できません。これを解決する、つまりutf-8の4バイトに該当する文字を扱えるようにしたのがutf-8mb4ということになります。絵文字などはutf-8の4バイトに当たるので、utf-8mb4でないと絵文字が扱えないということになります。このようなことになったかというと、これはMySQLの仕様や歴史的背景が絡むようですので、ご興味ある方は下の参考にあるリンク先などをご確認ください。2018.10.20関連する記事pictureタグとsrcset属性で画像の種類やサイズをスマホとパソコン表示で変える方法よこのじ(@yokonoji_work)です。スマホとパソコンで読み込む画像を変えることは、通信回線の弱いモバイルで表示速度を保ったり、デザインの自[...]Windows10でnpmをインストール・設定するよこのじ(@yokonoji_work)です。Windows10の環境にてnpmのインストールを行いました。今回はその手順を記しておきます。[...]初心者がSEO対策の基本を学ぶためのサイトを集めましたよこのじ(@yokonoji_work)です。SEOの読み方はエスイーオー?セオ?と迷うレベルからでも、検索エンジン最適化をしっかりと行えるようにな[...]素人がPythonでWebスクレイピングを実装する8よこのじ(@yokonoji_work)です。「素人がPythonでWebスクレイピングを実装する」の第8回です。第7回ではスクレイピングの対象を絞[...]重複コンテンツとは?SEO対策のためにカテゴリー,タグ,アーカイブのnoindexは必要かよこのじ(@yokonoji_work)です。今回は、重複コンテンツとSEOの関係についてです。他のサイトを参考に記事を書くことはペナルティの原因[...]よこのじ都内徒歩通勤のピアノ業界で働くエンジニア。技術系の内容を書いてます。https://yokonoji.work/feed/rss2/▼ココナラでWordPressの表示高速化をお手伝いしてます。Scriptでメールを送信する方法【メルマガ機能に応用可】キレイで読みやすいRubyコードを書くために。