2

私はオープン ソースの PHP Web サイトを持っており、日本人ユーザーが使用できるように (ほとんどが定数文字列) 変更/翻訳するつもりです。

元のコードは PHP+MySQL+Apache で、英語で書かれています。charset=utf-8

たとえば、「login」という単語を日本語の「ログイン」などに変更したい

PHP コードを (Python のように) utf-8 形式で保存する必要があるかどうかわかりません。

Python の経験しかないので、他にどのような問題に対処する必要がありますか?

4

3 に答える 3

2

ファイルにある場合は、はい、ファイルを UTF-8 として保存する必要があります。

データベースにある場合は、PHP ファイルを UTF-8 として保存する必要はありません。

PHP では、文字列は基本的に単なるバイナリ BLOB です。正しいバイトが読み込まれるように、ファイルを UTF-8 として保存する必要があります。理論的には、生のバイトを ANSI ファイルに保存した場合でも、ブラウザーに正しく出力されますが、エディターだけでは表示されません。エディターがそれを誤って操作する危険性があります。

また、非 ANSI 文字列を処理する場合は、マルチバイト バージョンの文字列操作関数を使用するように注意する必要があります (たとえば、str_replace は utf-8 文字列を無効にする可能性があります)。

于 2012-06-03T06:56:45.987 に答える
0

Pythonを使用した後、PHPを使用する必要があることをお詫び申し上げます。

PHPには文字セットの概念がありません。解析されたphpコードであっても、すべての文字列はバイナリであるため、php文字列にUTF-8マルチバイト文字を含める場合は、コードファイルのバイトがUTF-8バイトであることを確認してください。

アプリケーションのすべてのレベルで文字列関数を使用する場合は、細心の注意を払う必要があります。また、MySQL接続がUTF-8を使用するように設定されていること(SET NAMESまたはcharset以降のバージョンのPDOではdsnパラメーターを使用)、およびmysql文字列列のデータ型がutf-8ストレージを使用していることを確認する必要があります。

于 2012-06-03T07:33:12.487 に答える
0

ファイルに UTF-8 文字が含まれている場合は、UTF-8 で保存します。それ以外の場合は、任意の形式で保存できます。注意すべきことの 1 つは、PHP インタープリターが UTF-8 バイト オーダー マークをサポートしていないことです。そのため、それなしで保存してください。

于 2012-06-03T06:58:42.150 に答える