1

実行時にアラビア語のコンテンツを取得するにはどうすればよいMSSQL_QUERYですか?

のように表示され????ます。これを実行しようとしました:

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

ただし、この場合、値は次のように漢字で表示されます潬穬

どんな提案でも大歓迎です

4

3 に答える 3

2

Unicode データ型を使用するだけです。Unicode データ型は nchar、nvarchar、nvarchar(max)、および ntext であり、すべての Unicode 文字列の前に大文字の N を付ける必要があります。

INSERT INTO TableName (ColumnName) values(N'Arabic Text')
于 2011-04-20T05:34:27.697 に答える
1

まず、http://msdn.microsoft.com/en-us/library/cc793139%28v=sql.90%29.aspx にある sqlsrv ドライバーをインストールしてみてください。指示に正しく従った後、SQLサーバーに接続するときに次を使用します。

$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 ドライバーのヘルプ ドキュメントも参照してください。それが役に立てば幸い。

于 2012-03-01T11:35:44.893 に答える
0

アラビア語のテキストを選択する前に、これをデータベースに送信してみてください。

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 エンコーディングで保存されていることを確認してください。

3 番目に、すべてが失敗した場合は、iconv() 関数をもう少し試してみてください。

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

等々。

于 2010-07-15T08:20:16.140 に答える