2

我有一页,它的编码是UTF-8,如果我尝试在unix系统中运行该代码,一切看起来都很好,但是当我尝试在windows(7)中运行时,一些字符看起来是问号(�)。如何在两个系统中运行代码都很好(不使用 iconv)。

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)。

可能在 MS Windows 下使用非 utf8 编码。

于 2010-02-04T11:16:05.513 回答
3

对于那些在 linux 上遇到类似问题的人(这可能也适用于 windows,但不确定)。

是的,有 'turkish' 但也有 '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 回答