絵文字式を保存MySQLの

絵文字式を保存MySQLの

  • 私たちの生活の中で絵文字は常に何かが欠けていたと感じ、本当に、より一般的になりつつある、とのメッセージが絵文字を取るための時間ではありませんほぼすべての時間、つまらないテキストは、私たちの豊かな感情を運ぶことができなかったようです。どのように絵文字MySQLデータベースへのまたはを取り出し、私たち開発者にとって、それはスキルを習得する必要がありますになります。

  • 絵文字は、テキストのいくつかの非常に直感的な意味を反映することができ、グラフィカルシンボルです。それは古代の象形文字の時代のことを思い出します

ここに画像を挿入説明

  • バート・
    データベースに直接我々絵文字表現は、通常、エラーを以下の場合。
    ここに画像を挿入説明

MySQLデータベースは、コーディングutf8mb4に変更されますが、実行する方法の絵文字表現を維持したいことができないのですか?
データベースの文字コードは、一般的にUTF8のMySQLの境界を越えて、\ u1F601- \ u1F64Fで、コーディング範囲絵文字(サポート\ u0000- \ uFFFFコーディングの範囲)であるため。

どのようにこの問題を解決するには?

A、utf8mb4

MySQLの文字セットはutf8mb4としてUTF8によって調整することができます。utf8mb4 MySQLは(絵文字を含む)のUnicodeで、バージョン5.5.3符号化後の互換性のために4つのバイトが追加されています。

理論的には、utf8mb4 UTF8はほとんどが平均MB4 4バイトであるスーパーセットであり、すべての問題を読んで、既存のUTF8コードを持っていませんが、文字セットは「utf8mb4」で変更します。

アプリケーション層はまた、以下の調整のMySQLの接続を行う必要がありますので、しかし、通常はこの方法では、最適な解決策ではありません。

jdbcUrl = jdbc:mysql://localhost/jfinal_demo?characterEncoding=utf8mb4&useSSL=false&zeroDateTimeBehavior=convertToNul
由原来的 characterEncoding=utf8 调整为 characterEncoding=utf8mb4。

二、EmojiConverter

それは、データベースのすべてのバージョンと互換性があるようにより優しい解決策は、取り出したときに絵文字に変換文字列として絵文字を保存すべきです。

私はまた、支持体には、このエイリアス絵文字を変換し、GitHubの上のようなライブラリ--EmojiConverterが、それは簡単に文字列絵文字の別名に変換することができます。

1)pom.xmlファイルに追加されましたEmojiConverter

<dependency>
	<groupId>com.github.binarywang</groupId>
	<artifactId>java-emoji-converter</artifactId>
	<version>0.1.1</version>
</dependency>

それは絵文字変換格納される前に、2)toHtml()メソッドを呼び出します

EmojiConverter emojiConverter = EmojiConverter.getInstance();
String html = emojiConverter.toHtml(keywords.getContent().trim());
// JFinal 的保存方式
Record record = new Record().set("content", html)
Db.save("keywords", record);

例えば、絵文字賞賛の点含まれるべき格納されたコンテンツのうち。
ここに画像を挿入説明
MySQLデータベースは、コーディングutf8mb4に変更されますが、実行する方法の絵文字表現を維持したいことができないのですか?
その後emojiConverter.toHtml(でターン後のコンテンツ)が似ているのですか?以下のコード・ポイント:、デバッグ時のスクリーンショット。
ここに画像を挿入説明
MySQLデータベースは、コーディングutf8mb4に変更されますが、実行する方法の絵文字表現を維持したいことができないのですか?
この場合には、MySQLに格納されている内容は、通常の文字列であり、符号化は依然としてUTF8です。

それをフォーマットするのToUnicode()メソッドを呼び出す3)絵文字表示

String unicode = emojiConverter.toUnicode(content);
outMsg.setContent(unicode);

オリジナルます。https://juejin.im/post/5db696b76fb9a0203b234c22は、utm_source = gold_browser_extension?

公開された20元の記事 ウォンの賞賛0 ビュー262

おすすめ

転載: blog.csdn.net/white_zzZ/article/details/103349210