2

文字なしの醜いボックスしか表示されない場合、何が問題なのかを突き止めるためにどのようなツールまたは戦略を使用しますか?

(私が直面している特定のシナリオは、日本語の文字を表示する必要がある <select> 内の文字なしボックスです。)

4

3 に答える 3

3

まず、「醜い文字なしボックス」はエンコーディングの問題ではなく、ページにグリフを表示できるフォントがインストールされていないことを示しているだけかもしれません。

ほとんどの文字エンコーディングの問題は、あるシステムから別のシステムに文字列が渡されるときに発生します。Web アプリケーションの場合、これは通常、ブラウザーとアプリケーションの間、アプリケーションとファイルシステムの間、およびアプリケーションとデータベースの間です。

そのため、誤ってエンコードされたデータがどこから来ているのか、ソースでどの文字エンコーディングが使用されているのか、どのエンコーディングとして受信されているのかを確認する必要があります。最善の方法は、システムに問題があることがわかっている文字を送信し、アプリの各レベルでそれらを調べることです。アプリ内ではどのように表示されますか? データベースに?データベースからそれらを取り戻すときは?それらがブラウザに表示されるときは?

非常に一般的で申し訳ありませんが、この質問では、これ以上の作業はできません。

于 2008-08-27T04:26:58.737 に答える
2

ブラウザに送信したデータが文字化け(文字化け)すると、文字化けが発生します。また、META ヘッダーで間違った文字セットを指定すると、ブラウザーはページを正しくレンダリングせず、ページのランダムな場所で文字化けが再び発生することがあります。

CJK 文字セットを処理するときは、プログラムの有効期間 (データの保存、取得、コード内のデータ操作、ブラウザーでの表示など) を通じて、必ず UTF8 文字エンコードを使用する必要があります。

UTF8とは? UTF8 は、文字列ではなく、データのバイナリ ストリームを処理します。これは、ビットの組み合わせが可変長であることを意味します。ASCII 文字は 1 バイトを表す 8 ビットの固定長ですが、UTF8 文字は 6 ビット、8 ビット、12 ビットなどで構成できます。そのため、UTF8 は日本語で「文字化け」と呼ばれる傾向があります。

コーダーとして、データベースからコードベース、ブラウザーに至るまで、UTF8 を完全に使用するようにしてください。メールの場合は UTF8 を使用できますが、ほとんどのメール サーバーとクライアントはまだ古く、さまざまな文字セット (ISO9022X など) をごちゃまぜに使用していることに気付くでしょう。

データベース設定 mysql ユーザーの場合は、DB へのすべての接続で UTF8 が使用され、すべてのテーブル/フィールドで UTF8 が使用されていることを確認してください。デフォルトでは、mysql はラテン語 (スウェーデン語) の文字セットを使用します。これらの変なスウェーデン人はユーモアのセンスが大好きです!!

コードベースの確認 私の経験では、Notepad++、Notepad2、UltraEdit、e などのエディタはすべて UTF8 サポートの問題を抱えています。それらはほとんど動作しますが、開発者自身が CJK 言語を使用していないため、完全ではありません。BOM (バイト オーダー マーク) をオフにする、壊れたタブ、不適切な文字セット変換などの問題はすべて問題です。

Maruo のような実績のある UTF8 エディターを使用することを強くお勧めします。これは日本の会社が作ったものですが、http://www.hidemaru.interlink.or.jp/software/に英語版(と体験版)があります。

最後に、ソース ファイルを UTF8 に変換する必要がある場合があります。特に、コードベース自体に CJK 言語の文字列が含まれている場合。

文字列の操作 すべての文字列関数は、マルチバイト セーフである必要があります。私がダブルバイトとは言っていないことに注意してください。UTF8 は、文字を表すために使用されるビットの総数に応じて、2 バイトではなくマルチバイトです。PHP では、MB 文字列関数を具体的に呼び出す必要があります。Ruby やその他の言語はより透過的なサポートを提供しますが、アプリケーション サーバーのフレーバーについてはドキュメントを確認する必要があります。

META タグ META ヘッダーについては、google.co.jp または yahoo.co.jp をチェックしてください。これらは、適切な方法を知っているサイトです。基本的に、ドキュメント <HEAD> に次の META タグを含めます。

<meta http-equiv="content-type" content="text/html; charset=utf-8">

通常、英語の HTML ドキュメント タイプ属性と上記の文字を混在させても安全です。したがって、上記の META タグを追加すると、次のような HTML ドキュメントで機能するようです。

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

電子メール これはまったく異なるワームの缶詰です。UTF8 はよく機能しますが、多くの古い日本のクライアントは ISO2022X を使用しています。これはここで取り上げる価値はありません。

UTF8 の問題をデバッグ する マルオのような信頼できる UTF8 エディターがあれば、静的ページを作成して問題を解決できます。

それが役立つことを願っています

于 2008-09-13T03:40:17.770 に答える
1

データをディスクにリダイレクトし、Hex Editorを使用します。ほとんどのテキスト エディター/ビューアーはバックグラウンドで独自の変換を行っているため、データが実際の形式で表示されているかどうかを確認することは困難です。

于 2008-08-27T06:53:48.803 に答える