1

ユーザーがアラビア語のテキスト文字列をFacebookのコメントに書き込んで保存する場合、データストレージの照合タイプは何ですか?

コメントにmysqlテーブルを使用しているとは思いませんが、ローカルホストのmysqlテーブルを使用してトピックをいじりました。ここでは、アラビア語を2進文字で格納しています。

それはテキストをおそらくエスケープされた文字のシーケンスに変換しました。しかし、一度保存すると、そのままの状態になります。

i18nを検討する場合、Facebookを英語に設定している場合でも、他の非西洋エンコード文字を入力すると、正しく保存および表示されます。

彼らがこれをどのように達成したかについての洞察はありますか?

4

1 に答える 1

2

初め; 確かなことはわかりませんが、MySQLがこのためにどこでも機能するとは思いません。

正しいことは、UTF-8を<some-system>の期間に格納することです。これはMySQLかもしれません。詳細はわかりませんが、MySQL(およびそのことについてはPHP **)はUTF-8 / Unicodeのサポートと実際には同等ではないため、いくつかの「不具合」が発生する可能性があります。たとえば、set names=utf8utf8が完全に機能するように接続を開いた後、最初に ""またはいくつかのクレイジーなものを実行する必要があります(これがテストが機能しなかった理由である可能性があります)。また、MySQLが4バイトでエンコードされたUTF-8文字をサポートしていないことを覚えています。最大3文字です。それが現在正しいかどうかはわかりませんが、漠然と覚えています。[編集] 5.5以降で修正する必要があります 。[編集] 2バイトまたは3バイトが必要です。

そして、グリッチに取り組んでいる間、PHPについては、strlen()が実際の文字の代わりにバイトを返すなどのことを覚えています。間違いがなければ、UTF-8をより適切に処理するmb_XXX関数(マルチバイト文字列)がいくつかあります。[編集]それがすることが判明しました。

i18nとFacebookを英語(またはスワヒリ語)に設定すると、これにどのような影響があるかはまったくわかりません。これはインターフェースで使用される言語であり(おそらく/おそらく日時のフォーマットなどに影響を与える)、ユーザー生成コンテンツとは何の関係もありません。

ああ、ほとんどすべてのソフトウェア開発者の義務を忘れてしまった絶対に、積極的にUnicodeと文字セットについて知っておく必要があります(言い訳はありません!) -link

**通常はMySQLと連携するため、言及するだけです。

于 2012-12-06T21:37:12.457 に答える