我在运行MSSQL_QUERY
时如何获得阿拉伯文内容?PHP从SQL SERVER获得阿拉伯语内容
它显示为????
,我试着这样做:
$res = mssql_query($q);
$row = mssql_fetch_row($res)
echo iconv("unicode", "utf-8", $row[0])
但在这种情况下,它显示为潬穬
值作为中国信任何建议高度赞赏
我在运行MSSQL_QUERY
时如何获得阿拉伯文内容?PHP从SQL SERVER获得阿拉伯语内容
它显示为????
,我试着这样做:
$res = mssql_query($q);
$row = mssql_fetch_row($res)
echo iconv("unicode", "utf-8", $row[0])
但在这种情况下,它显示为潬穬
值作为中国信任何建议高度赞赏
只需使用Unicode数据类型即可。 Unicode数据类型的nchar,nvarchar的,为nvarchar(max)和ntext的,你必须要加上一个大写字母N.
INSERT INTO TableName (ColumnName) values(N'Arabic Text')
这是很长的时间了,我有用你提到的相同方式解决它;;) – Alaa 2011-04-21 05:47:13
好,尝试发送此数据库,然后再选择阿拉伯文字:
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]);
等。
SET NAMES的'utf8'是mysql语句,而问题是关于Microsoft SQL server 2005. 但是,感谢您的关注和帮助。 我的页面保存为UTF-8 和echo iconv(“Latin1_General_CI_AS”,“utf-8”,$ row [0]); echo iconv(“Arabic_CI_AS”,“utf-8”,$ row [0]); 他们都没有打印什么:( – Alaa 2010-07-15 09:06:10
那么,我还没有与MSSQL的工作,但不是有一些相当于SET NAMES? – 2010-07-15 09:54:40
不幸的是我不知道任何SQL服务器的等效 问题是,标准输出编码的sql server是unicode,但是当我把它转换为utf-8时它变成了中文!!!然而,如果我得到了解决方案,我会在这里发布肯定 谢谢 – Alaa 2010-07-15 12:04:19
首先尝试安装上http://msdn.microsoft.com/en-us/library/cc793139%28v=sql.90%29.aspx发现SQLSRV驱动程序的所有Unicode字符串。正确地按照指示后,连接到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司机的帮助文档。 希望它有帮助。
数据库连接的编码是什么,数据库的编码是什么,输出页面的编码是什么? – 2010-07-15 07:15:07
我的数据库: SQL Server 2005中: DB归类:Latin1_General_CI_AS Server排序:Arabic_CI_AS 我在输出页面编码:UTF8 – Alaa 2010-07-15 07:47:00
和datattpe在SQL Server?我认为nchar或nvarchar? – 2010-07-15 09:17:06