PHP 从 SQL SERVER 获取阿拉伯语内容

发布于 2024-09-10 03:43:00 字数 271 浏览 10 评论 0原文

运行 MSSQL_QUERY 时如何获取阿拉伯语内容?

它显示为 ??????,我尝试这样做:

$res = mssql_query($q);
$row = mssql_fetch_row($res)
echo iconv("unicode", "utf-8", $row[0])

但在这种情况下,它显示的值为中文字母 潬穬

任何建议都将受到高度赞赏

How can I get Arabic content when I run MSSQL_QUERY?

It appears as ????, I tried to do this:

$res = mssql_query($q);
$row = mssql_fetch_row($res)
echo iconv("unicode", "utf-8", $row[0])

but in this case it shows the value as Chinese letters as 潬穬

any suggestion is highly appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

憧憬巴黎街头的黎明 2024-09-17 03:43:00

只需使用 Unicode 数据类型。 Unicode 数据类型为 nchar、nvarchar、nvarchar(max) 和 ntext,并且必须在所有 Unicode 字符串前面添加大写字母 N。

INSERT INTO TableName (ColumnName) values(N'Arabic Text')

Just use Unicode data types. The Unicode data types are nchar, nvarchar, nvarchar(max), and ntext and you must precede all Unicode strings with a capital letter N.

INSERT INTO TableName (ColumnName) values(N'Arabic Text')
奢欲 2024-09-17 03:43:00

首先尝试安装 http:/ 上找到的 sqlsrv 驱动程序/msdn.microsoft.com/en-us/library/cc793139%28v=sql.90%29.aspx。正确遵循说明后,连接到 sql server 时使用:

$connArr = array(
    "Database"     => $dPconfig['dbname'],
    "UID"          => $dPconfig['dbuser'],
    "PWD"          => $dPconfig['dbpass'],
    "CharacterSet" => "UTF-8"
);

$conn = sqlsrv_connect($dPconfig['dbhost'], $connArr) or die("cannot connect");

它应该可以正常工作
另请参阅 sqsrv 驱动程序的帮助文档以了解其他编码。
希望有帮助。

Firstly try installing the sqlsrv drivers found on http://msdn.microsoft.com/en-us/library/cc793139%28v=sql.90%29.aspx. After following the instructions correctly, when connecting to sql server use :

$connArr = array(
    "Database"     => $dPconfig['dbname'],
    "UID"          => $dPconfig['dbuser'],
    "PWD"          => $dPconfig['dbpass'],
    "CharacterSet" => "UTF-8"
);

$conn = sqlsrv_connect($dPconfig['dbhost'], $connArr) or die("cannot connect");

it should work just fine
Also see help docs of sqsrv drivers for other encodings.
Hope it helps.

愛放△進行李 2024-09-17 03:43:00

好吧,在选择阿拉伯文本之前尝试将其发送到数据库:

SET NAMES utf8;

例如,使用 PDO 时:

try {           
    $dbh = new PDO(
    'mysql:host=127.0.0.1;dbname=dbname',
    'root',
    'root',
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);
} catch (Exception $e) {
    echo $e->getMessage();
}

其次,确保所有文件(PHP 文件、HTML 模板)都使用 UTF-8 编码保存。

第三,如果这一切都失败了,请尝试更多地使用 iconv() 函数:

echo iconv("Latin1_General_CI_AS","utf-8",$row[0]);
echo iconv("Arabic_CI_AS","utf-8",$row[0]);

依此类推。

Well, try sending this to database before you select the arabic text:

SET NAMES utf8;

For example, when using PDO:

try {           
    $dbh = new PDO(
    'mysql:host=127.0.0.1;dbname=dbname',
    'root',
    'root',
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);
} catch (Exception $e) {
    echo $e->getMessage();
}

Secondly, make sure that all your files (PHP files, HTML templates) are saved with UTF-8 encoding.

Thirdly, if all that fails, try playing with the iconv() function a bit more:

echo iconv("Latin1_General_CI_AS","utf-8",$row[0]);
echo iconv("Arabic_CI_AS","utf-8",$row[0]);

And so on.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文