我有一个页面,它的编码是UTF-8,如果我尝试在unix系统中运行该代码,则Everythings看起来很好但是当我尝试在windows(7)中运行时,一些字符看起来是问号( )。如何在两个系统中运行代码都很好(不使用iconv)。
header('Content-Type: text/html; charset=UTF-8');
setlocale(LC_ALL, 'turkish');
echo strftime("%d %B %Y, %H:%M");
答案 0 :(得分:9)
Microsoft Windows不支持UTF-8语言环境。因此,如果您提供土耳其语区域设置,它将拍摄一个允许表示特定语言的8位代码页。
例如,对于语言环境希伯来语,它将为pic codepage-1255,对于土耳其语,它可能是1254。
因此,您不能在MS-Windows平台下使用它。
如何在两个系统中运行代码都很好(不使用iconv)。
可能在MS Windows下使用非utf8编码。
答案 1 :(得分:3)
对于那些在linux上遇到类似问题的人(这可能也适用于Windows但不确定)。
是的,有'土耳其',但也有'tr_TR.utf8'。如果您使用'tr_TR.utf8',您的问题很可能会被冲走。同样的事情也适用于'希腊'。而是使用'el_GR.utf8'
在Linux上,您可以查看区域设置列表,找到适合您网站的设置。
locale -a
列表太长,您无法看到所有语言,因此您可以将其转储到文件中,然后打开文件进行检查。
locale -a > locale.txt
vi locale.txt
或执行 区域设置-a |针对特定语言的grep语言代码
locale -a | grep tr