皆さんは私が思っていた前に質問に答えるという素晴らしい仕事をしました-私が何か間違ったことをしたことを知るために私の変換に深く入り込む前に、私はこれを尋ねます. 自分で作っているウェブサイトに 3 ページしかありません。フォーム、sqli db があります。UTF-8 を使用するように言われました (部分的に使用しましたが、完全には使用しませんでした) 笑。いいですね。100% UTF-8 に対応するように修正したいので、マルチバイト関数を使用せずに PHP、JS、および HTML で約 1,900 行のコードを記述しました。私はこれを行いました...(さまざまな場所からのコードの抜粋...)
PHP
date_default_timezone_set('America/Toronto'); // sets the timezone to Eastern Stand Time
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
等
SQL
(cpanel インターフェイスから) MySQL 接続照合": utf8_general_ci
SQL DB (まだ utf-8 より前のモード)
ユーザー名 varchar(50) latin1_general_cs
会社名 varchar(50) latin1_swedish_ci
fname varchar(25) latin1_swedish_ci
テーブルに貴重なデータがありません。それらを次のいずれかに変更します(ただし、どれかはわかりません)...
utf8_general_ci または utf8_unicode_ci
外国人にもサイトを利用できるようにしたいのですが、優先度は高くありませんが、UTF-8 スタイルで行っているので、おそらく外国語でも機能するでしょう。
私の質問は...
1)タイムゾーンを設定しましたが、php でロケールを設定したことがないため、ロケールを設定しませんでした。私はそれをする必要がありますか?トロント/カナダの場所でそれを行うにはどうすればよいですか?
2)ページ全体をUTF-8にするのに十分なメタタグを介して各ページを設定していますか
3)メタ タグを使用すると、すべてのフォーム フィールドが既に UTF-8 データとして入力されているということですか? そうでない場合は、どうすれば変更できますか。
4) DB にはどれを使用しますか? utf8_general_ci または utf8_unicode_ci
5)大文字と小文字を区別する必要があります。utf8 の ci しか表示されません。これは、「Dave」が「dave」とは異なるため、マルチバイト比較を使用すると自動的に大文字と小文字が比較されるためですか...??!?!?!
6)私のDBは現在、ASCIIのストレージ用に50文字と言います-DBでutf-8に切り替えることで、私のような英語の人にとっては50のストレージで問題ないと思います-しかし、外国人が来てたくさんの文字を入力した場合ユニコードの余分なバイトをすべて収容するには、ストレージを x4 増やす必要がありますか? より多くのストレージを使い果たしてもかまいませんが、これを割り当てる適切な方法がどのようになるか興味があります。そして、それは VARCHAR(50) であるため、とにかく本当に重要でしょうか? 名前が「Dave」の場合、4 文字になります。外国の名前だったら、記号の「デイブ」は12文字かもしれません!笑。したがって、ユーザー名フィールドに 100 を割り当てると、すべての文字が 4 バイトになる可能性は低いため、これを行う必要があります。または、英語の場合と同じようにx4に設定し、すべてVARCHARSにしてスペースを節約します。彼らがフォームにデータを入力するとき、私は MB_LENGTH 関数を使用します (正確な関数は忘れました) ので、入力する文字数を制御できます。
7) Unicode Web サイトをテストするにはどうすればよいですか? 私は美しい英語以外は何も使ったことがありません:)笑。ブラウザを切り替えるにはどうすればよいですか? 私が別の場所から来たふりをして、コードの山を入力し、mb_ (マルチバイト) 関数を使用するように書き直したら、関数が機能するかどうかを確認します。または、切り替えるものは何もありません... ALT 245 または何かを入力するだけで、記号が表示されますか?!?!? 外国人テスト文字の入力方法がわからない!ウェブサイトを十分にテストしていないため、すべての外国の顧客がパスワードを入力できないようにするためだけに英語を機能させるのは最悪です:)
8)特定の関数 ctype、mb_ を使用して Unicode 比較、文字列などを処理することを知っています。正常に機能しないものはありますか?
はい... 私は言葉が多いです !:) 私は Dreamweaver CS3 を使用していますが、それは問題ではありません。実際のファイルには UTF-8 文字が埋め込まれていません。
皆様の知恵をお待ちしております...