补充一点,用phpinfo()查看php配置,知default_charset 为空(no value)

解决方案 »

  1.   

    有时候和文件保存时的设置有关我以前有时候,碰到乱码,就得用editplus打开,再另存一下。然后在转换器那里设置utf-8
      

  2.   

    文件本身保存的是utf-8模式的
    MS sql server数据库的相关字段是ntext,这种应该是unicode保存的吧?排序规则我看了,是数据库默认,即,windows 排序-Chinese_PRC,
    现在的情况是,网页如果选择gb2312编码(无论是指定,还是不指定而手动选择),则
    数据库输出的字符(有中文也有日文)能正确显示。但这时,网页里原来直接写的文字是乱码。
    反之,选择utf-8,则情况正相反。但是,输出完全同样的内容,用asp,同时设置codepage=65001 ,和charset=utf-8,则页面的内容,和数据库输出的字符,全部都能正常显示。
      

  3.   

    那你可以把你的数据库的数据转码一下,取出后用iconv等反之,你的页面可以用utf-8的
      

  4.   

    同意楼上,可统一为utf-8,即网页保存的时候用utf-8,数据库读出的进行编码转换,用iconv函数转即可。
      

  5.   

    数据库的字段是nvarchar还是varchar?
    有可能是字段类型问题哦
      

  6.   

    数据库字段是nvarchar用iconv的话,语法是类似这样用的吗?
    iconv("ISO-8859-1", "UTF-8", $line[0])
    但我怎么知道,这个从数据库读出来的字段$line[0]的编码是什么?就是说iconv的第一个参数是什么?还有我发现,服务器上的页面,从数据库里读出来的字段,选择页面编码GB2312可以正常显示.但在本机上,选择gb2312却是乱码.服务器是windows 2003 serever,本机是 windows 2000 advanced server.
      

  7.   

    我想可能就和这几个方面有关:
    1,数据库的字段类型,如varchar 或者nvarchar
    2,字段的排序规则
    3,php页面的头编码指定,header(header("Content-type:....
    4,php页面的htm 头 <meta http-equiv="Content-Type" content="text/html.....
    5,字符转换,iconv
    6,文件本身的存储编码这些方面有的地方不是很熟.但基本上能试的都试过了,总是乱码.
    隐约好象记得,php手册上User contributed notes里好象提过,这可能是mssql扩展的处理汉字方面的一个bug.最后他是换用odbc连接解决乱码问题的.我再找找看.
      

  8.   

    你的问题是数据库里读出来的编码和网页编码不一致。第一种方法:把网页存为GBK编码,网页里设置charset=gbk
    第二种方法:用iconv或者mb_convert_encoding把从数据库里读出的字符串从GBK转换到UTF-8编码,网页里设置charset=utf-8。
    iconv('GBK','UTF-8',$string)就是把字符串从GBK转换到UTF-8.
      

  9.   

    sawfish(sawfish)
    按你说的,用iconv('GBK','UTF-8',$string),问题解决!
    太感谢了!我现在想问一下,你是怎么知道 数据库存储的是GBK格式的而不是别的比如utf-8格式的呢?
      

  10.   

    还有一个问题,是每一处数据库输出字符都要用iconv('GBK','UTF-8',$string)转换吗?
    有没有简便的方法可以在页面里设置一次就整个页面都有效?
      

  11.   

    数据库的语言设置为日语的,
    MYSQL设置为eucjpms,不知道你用的数据库怎么设置
      

  12.   

    如果自己写数据库连接部分,可以试试这样:$conn = @new COM("ADODB.Connection", NULL, '65001');
      

  13.   

    lwxhami() 
    如果自己写数据库连接部分,可以试试这样:
    $conn = @new COM("ADODB.Connection", NULL, '65001');
    -----------------------------------
    编码我用iconv('GBK','UTF-8',$string),已经可以解决,
    用你说的这种方法我刚才也试了一下,也可以解决。谢谢!
    不过用com adodb的相关方法觉得没有mssql 扩展的相关函数用起来习惯。不过还是谢谢。
      

  14.   

    用iconv('GBK','UTF-8',$string),问题解决!我还有两个问题:
    怎么知道 数据库存储的是GBK格式的而不是别的比如utf-8格式的呢?
    有没有简便的方法可以在页面里设置一次就整个页面都有效?还是只能每个字符串都要转换?
      

  15.   

    这个问题我也遇到过,是在做日文网站的时候,Myslq+php+linux
    当我把数据和文件传到linux服务器上的时候,数据库中显示的内容是乱码,当然页面也是显示乱码的了也是搞了很久,后来问题解决了,
    问题出在导数据库上linux服务器的数据库的编码上解决的方法是:
    是sql后面使用以下:
    TYPE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin就是把数据库的编码确定为 utf8
      

  16.   

    就是把数据库的编码确定为 utf8
    --------------------
    怎么设置MS sql的数据库编码?我使用的mssql扩展连接数据库的 mssql_connect,mssql_query等操作,好像没有设置编码的参数
      

  17.   

    还是没解决问题?楼主最后是如何解决的呀?
    iconv( 'GBK ', 'UTF-8 ',$string),这样单个设置太麻烦了
      

  18.   

    odbtp可以解决你的问题,我们公司一直在使用,情况良好
    http://odbtp.sourceforge.net/