0

リトアニア語で情報を保管する Web サイトを作成しています。基本的には、すべてのラテン文字といくつかの固有の文字 (Ąą、Čč、Ęę、Ėė、Įį、Šš、Ųų、Ūū、Žž) で構成されます。

データベースの照合順序を utf8_general_ci または cp1257_lithuanian_ci に設定しようとしています。ただし、utf8_general_ci を使用することを好みます。

ページにリトアニア語の文字を印刷する場合、これらの照合はどちらも正常に機能しますが、php コードはリトアニア語の文字を理解していないようです。たとえば、すべてのリトアニア語の文字を同様のラテン文字 (Ą = A、Ė = E) に交換しようとすると、php はこれらの文字をコードに記述されているリトアニア語の文字と一致させることができません。リトアニア語のテキストを小文字にしようとすると、リトアニア語の文字が 2 つのラテン文字に変わります。

機能させるには何を変更してみるべきですか?

編集:

コード:

<?php
    echo 'ĄąČčĘęĖėĮįŠšŲųŪūŽž';
?>

戻り値:

Ä„Ä…ÄĨÄęĖėĮÄÆÅŲųÅŖūŽž</p>

私がすでに行ったこと:

-All files set to "UTF8 No Mark"
-Html has a propper meta tag
-Mysql database collation is "utf8_general_ci"
4

3 に答える 3

3

ファイルが BOM エンコードされていない UTF-8 であることを確認してください。

また、php ページは UTF-8 ヘッダーを送信する必要があります。

header("Content-Type: text/html; charset=utf-8");
于 2013-04-27T14:42:27.783 に答える
0

あなたは一つのことを忘れています。次のようなエンコーディングについてブラウザに通知する必要があります。

<meta charset='utf-8'>

またはこれ:

<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>

またはこれ:

<?php
    header("Content-Type: text/html; charset=utf-8");
?>

エンコーディングについてブラウザーに通知しない場合、ブラウザーは構成からデフォルトのエンコーディングを使用するか、自動検出を試みます。

于 2013-04-27T15:34:13.653 に答える