MSSQL SERVER 2005存储多语言数据乱码的解决方法

时间:13-03-01 栏目:问题及解决 作者:admin 评论:0 点击: 3,638 次

SQL语句如下:

insert into test1 (txt) values ('Wir bevorzugen Rückerstattung, könnten Sie, dass dringend für mich tun? Grüße')

运行之后,发现输出的文本好多?号.

打开MSSQL企业管理器,数据库属性->选项->排序规则,设置成 chinese_prc_ci_ai后,再运行SQL语句输出时就正常了。

不管是输入英语,汉语、德语、俄语、西班牙语、日语还其他语言都能正确显示。

以下是测试代码:

<?php
include  'inc.php';

$dbhost = '127.0.0.1,7788';
$dbuser = 'sa'; //你的mssql用户名
$dbpass = 'admin'; //你的mssql密码
$dbname = 'test'; //你的mssql库名

$connect = @odbc_connect("Driver={SQL Server};Server=$dbhost;Database=$dbname","$dbuser","$dbpass")
        or
        die('<br><strong>odbc_error</strong>:'.odbc_error() .'<br><strong>odbc_errormsg</strong>:'.odbc_errormsg().'');

function odbc_execs($sql){
    global $connect;
    $exec = odbc_exec($connect,$sql) or
            die('<br><strong>odbc_error</strong>:'.odbc_error()
            .'<br><strong>odbc_errormsg</strong>:'.odbc_errormsg().''
            .'<br><strong>SQL</strong>:'.$sql.'');
    return $exec;            
}

//$sql ='drop table test1';
/*$sql = 'create table test1 (
    id int identity(1,1),
    txt nvarchar (200),
    primary key ( id)
)';

$exec = odbc_execs($sql);    
var_dump($exec);*/

$sql="insert into test1 (txt) values ('Wir bevorzugen Rückerstattung, könnten Sie, dass dringend für mich tun? Grüße')";
$exec = odbc_execs($sql);
$sql = "SELECT txt FROM test1 WHERE id=1";
$exec = odbc_execs($sql);
$txt = odbc_result($exec,1);
var_dump($txt);
?>

声明: 本文由( admin )原创编译,转载请保留链接: MSSQL SERVER 2005存储多语言数据乱码的解决方法

MSSQL SERVER 2005存储多语言数据乱码的解决方法:等您坐沙发呢!

发表评论


------====== 本站公告 ======------
联系信息:
lxq73061#qq.com qq:583964941
支付宝:https://me.alipay.com/lxq73061
相关插件程序等信息均会在站内发布,敬请关注。

读者排行