2

私は1つのページを持っていて、そのエンコーディングはUTF-8です。UNIXシステムでそのコードを実行しようとすると、すべてが正常に見えますが、windows(7)で実行しようとすると、一部の文字が疑問符(�)に見えます。(iconvを使用せずに)2つのシステムの両方でコードを正常に実行するにはどうすればよいですか?

header('Content-Type: text/html; charset=UTF-8');
setlocale(LC_ALL, 'turkish');
echo strftime("%d %B %Y, %H:%M");
4

2 に答える 2

9

Microsoft Windows は UTF-8 ロケールをサポートしていません。したがって、トルコ語のロケールを指定すると、特定の言語を表現できる 8 ビット コード ページが表示されます。

たとえば、ロケール ヘブライ語の場合は pic codepage-1255 になり、トルコ語の場合はおそらく 1254 になります。

したがって、これは MS-Windows プラットフォームでは使用できません。

(iconv を使用せずに) 2 つのシステムの両方でコードを実行するにはどうすればよいでしょうか。

おそらく、MS Windows では非 utf8 エンコーディングを使用します。

于 2010-02-04T11:16:05.513 に答える
3

Linuxで同様の問題を抱えている人向け(これはWindowsでも機能する可能性がありますが、確実ではありません)。

はい、「トルコ語」がありますが、「tr_TR.utf8」もあります。'tr_TR.utf8' を使用すると、おそらく問題が洗い流されます。同じことが「ギリシャ語」にも当てはまります。代わりに「el_GR.utf8」を使用してください

Linux では、ロケール リストをチェックして、サイトに適した設定を見つけることができます。

locale -a

リストが長すぎてすべての言語を表示できないため、ファイルにダンプしてからファイルを開いて確認することができます。

locale -a > locale.txt
vi locale.txt

またはlocale -a |を実行します。特定の言語のgrep 言語コード

locale -a | grep tr
于 2011-07-12T12:35:32.677 に答える