如何解决我的PHP网页文件的语言编码


How I can solve my PHP web page file language encoding?

我在PHP中的语言编码有问题,因为我的PHP文件应该同时显示英语和阿拉伯语字符。

一些网页部分是静态的,另一些是动态的(数据来自Sybase数据库),数据库的语言编码是可以的,因为数据在其中显示得很好

我的网页上有一些动态的下拉列表,但它们以一种奇怪的格式显示数据,这种格式不像英语或阿拉伯语那样的正方形和未知符号。

我检查了可能的原因,并采取了许多解决方案,如:-

  • 更改PHP脚本的编码:

    保存文件名:WebPage1,类型:PHP,编码:ANSI或UTF-8或Unicode。

  • 更改HTML编码声明:

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256" />
    
  • 更改PHP编码声明:

    header('Content-Type: text/html; charset=UTF-8);
    header('Content-Type: text/html; charset=windows-1256');
    
  • 更改数据库表的字体和语言:

    Arial(Arabic).
    

这个问题仍然存在,我不知道我能做些什么来解决这个问题。

你能提出任何解决方案吗?

检查数据库连接,确保sybase_connect以字符集形式使用UTF-8连接。看见http://php.net/manual/en/function.sybase-connect.php

从您使用ODBC进行连接的评论来看:PHP/ODBC和UTF8似乎有问题。这个线程中提到了一些建议:Php/ODBC编码问题

始终使用UTF-8。

你的第一个标题是正确的。您的第一个标头是正确的,只是您应该使用单个=而不是==。在向浏览器发送任何输出之前,请确保使用了header()函数。

在支持Unicode的编辑器(如Editplus、notepad++)中打开文件,在保存每个源代码或HTML文件时,使用另存为并在另存为屏幕上选择UTF-8。如果您使用eclipse,请将您的项目导入eclipse,右键单击它并转到项目设置,将字符集设置为utf-8应用于所有源代码。

如果MySQL数据库中的数据有问题,请对任何文本存储列(varchar、blob等)使用适当的排序规则。这些是对它的常见建议。如果你使用Sybase,那么就使用谷歌进行排序规则设置。

不要把你的字体改成阿拉伯语;Arial已经支持它了。

您似乎混淆了一些东西。UTF-8windows-1256都没有描述语言,它们表示字符集/编码。尽管字符集可能包含某些语言中通常使用的字符,但它们的使用并不能说明该语言。

现在,由于Windows-1256的字符包含在Unicode的字符集中,因此可以使用UTF-8进行编码,因此您应该为这两种语言选择UTF-8。

如果您想为内容声明语言,请阅读W3C关于XHTML和HTML中的声明语言的教程。

在您的情况下,您可以将您的主要文档语言声明为en(英语),并将文档的某些部分声明为ar(阿拉伯语):

header('Content-Language: en');
header('Content-Type: text/html;charset=UTF-8');
echo '<p>The following is in Arabic: <span lang="ar">العربية</span></p>';

请确保两者都使用UTF-8。