![]() 分類: 技術的な話 日付: 2021年12月20日公開 自分の掲示板で一部環境で「〜」が入力できないことに本日気づきました。入力すると「〜」と表示されます。12316は「〜」の UNICODE での 10進数の値で、その前の記号はブラウザへのそのコードを表示するような指示です。 PC では問題ないのですが、Android の Chrome と iPhone の Safari では駄目でした。他のブラウザではどうかは試してみたいのですが、スマホだと同じのような気がします。 問題のある環境では、フォームからの入力時ブラウザが「〜」を「〜」に変換してしまい、そして & がエスケープ(htmlspecialchars)されて & になります。これをブラウザで表示すると「〜」になります(「〜」そのままだと「〜」と出るはずです)。 なぜ「〜」を変換するのかといえば後述しますが「〜」がやっかいな面があるからだと思います。 もともと「〜」(じぶんは「から」で変換しています)は文字化けしやすく、アプリでも何も考えずに「〜」を含む文字列を Android から iOS に移植、すなわち Windows 用プログラムから Mac 用プログラムに移植すると文字化けしやすいです。 このブログでも「〜」は多用しているのですが、サーバー更新などでデータベースを移植した際に「〜」は全滅しました・・・。 「〜」って結構使うのでそこそこ辛いですね。そして、このブログも文字化けみたいなのがたくさんあるような状態になってしまう可能性があります。 肝心の修正方法は、いろいろあると思いますが「〜」の文字列を「〜」に内部の処理で行うか「&」をエスケープさせないくらいで良いとは思います。 追記:UNICODE では、絵文字もたくさん定義されておりそのようなものにも対応するには、後者の方が良いかもしれません。ただし欠点もあって、もし投稿エラーなどが発生した場合(二重投稿など)、入力欄には入力内容を残した状態にしたいと思いますが、自分の実装ではその場所が「&#xxxx;」と表示されてしまいます。何か上手い実装方法はあるとは思いますが・・・。 アプリゲーム紹介 Mocoゲーム作成で比較的人気の無料ゲーム がちんこカーリング を公開中です。Google Play 及び App Store でダウンロード可能です。 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ⇒ より最新のブログ ⇒ より以前のブログ
|
最新エントリー![]()
⇒ より以前のブログ コンテンツ分類 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() カレンダー ![]() 2025年03月 ⇒ ブログカレンダー |