本人作了一个简易博客,在本地运行时能行,到上传到服务器上时,发表文章时不能显示汉字,全是他妈的?,
只能显示数字和字母,在我的程序里已经设置成了 gbk,怎样才能编码统一啊。数据库是Mysql,用的是php.....高分求答案。。谢谢。

解决方案 »

  1.   

    编码统一还用问呢,php程序文件,mysql数据库,HTML页面全都保存为gbk格式,并且在<meta>标签中声明。还有,数据库是什么编码呢? 你是否用的mysql_*系列函数? 
    给文章的写入和读取代码前加上一句申明编码的代码 
      mysql_query("SET NAMES GBK");
      // 后面的这句代码就是你读取或写入数据的操作。就像是 mysql_query("SELECT * FROM post");
      

  2.   


    建议 使用 utf8格式 ,如果全是 gb2312
    当 用户输入有繁体字的时候,在某些时候会出错。1个页面meta 要加 utf-8申明 ,页面保存格式要用utf-8格式 ,同时要保存成无bom的utf8文件。
    同时 apache中可以把 Defaultcharset改为 utf-8 
    mysql   mysql_query("SET NAMES utf8"); 注意这里不是 utf-8
     如 这里 
    -------------------------------
      

  3.   


    我是远程连接到别人服务器上的,数据库的字符集人家不允许修改, mysql_query("SET NAMES GBK");
    不管用,该怎么办呢?
      

  4.   


    1楼说设置称gbk,您说utf-8,有什么区别吗?谢谢。。
      

  5.   

    人家服务器是什么编码。你就:mysql_query("SET NAMES 编码"); 
      

  6.   

    先注释掉 mysql_query("SET NAMES XXX") 之类的代码发一篇文章,然后读回来。看看怎么样
      

  7.   


    本人理解,GBK是中国人做的比较早的版本,utf-8新一点,对于繁体字什么的一般不会发生乱码,所以一般都用这个编码
      

  8.   


    在所有字符集中,最知名的可能要数被称为ASCII的7位字符集了。它是美国标准信息交换代码(American Standard Code for Information Interchange)的缩写, 为美国英语通信所设计。它由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等)组成。
      但是,由于他是针对英语设计的,当处理带有音调标号(形如汉语的拼音)的欧洲文字时就会出现问题。因此,创建出了一些包括255个字符的由ASCII扩展的字符集。其中有一种通常被称为IBM字符集,它把值为128-255之间的字符用于画图和画线,以及一些特殊的欧洲字符。另一种8位字符集是ISO 8859-1Latin 1,也简称为ISO Latin-1。它把位于128-255之间的字符用于拉丁字母表中特殊语言字符的编码,也因此而得名。
    [ASCII码格式]欧洲语言不是地球上的唯一语言,因此亚洲和非洲语言并不能被8位字符集所支持。仅汉语(或pictograms)字母表就有80000以上个字符。但是把汉语、日语和越南语的一些相似的字符结合起来,在不同的语言里,使不同的字符代表不同的字,这样只用2个字节就可以编码地球上几乎所有地区的文字。因此,创建了UNICODE编码。它通过增加一个高字节对ISO Latin-1字符集进行扩展,当这些高字节位为0时,低字节就是ISO Latin-1字符。UNICODE支持欧洲、非洲、中东、亚洲(包括统一标准的东亚象形汉字和韩国象形文字)。但是,UNICODE并没有提供对诸如Braille, Cherokee, Ethiopic, Khmer, Mongolian, Hmong, Tai Lu, Tai Mau文字的支持。同时它也不支持如Ahom, Akkadian, Aramaic, Babylonian Cuneiform, Balti, Brahmi, Etruscan, Hittite, Javanese, Numidian, Old Persian Cuneiform, Syrian之类的古老文字。
      事实证明,对可以用ASCII表示的字符使用UNICODE并不高效,因为UNICODE比ASCII占用大一倍的空间,而对ASCII来说高字节的0对他毫无用处。为了解决这个问题,就出现了一些中间格式的字符集,他们被称为通用转换格式,即UTF(Universal Transformation Format)。目前存在的UTF格式有:UTF-7, UTF-7.5, UTF-8, UTF-16, 以及 UTF-32。GBK即汉字内码扩展规范,K为扩展的汉语拼音中“扩”字的声母。英文全称Chinese Internal Code Specification。GBK编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。GB2312码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集——基本集》,1980年由国家标准总局发布。基本集共收入汉字6763个和非汉字图形字符682个,通行于中国大陆。新加坡等地也使用此编码。GBK是对GB2312-80的扩展,也就是CP936字码表 (Code Page 936)的扩展(之前CP936和GB 2312-80一模一样)。
      

  9.   

    #10 的说明基本是对的,但还存在一些问题:
    1、GB 是“国家标准”的汉语拼音缩写
    2、GBK 是 GB2312 的扩展,正式标准为 GB18030。
    3、CP936 与 GBK 等价,但排列方式不同
    4、CP 是 Code Page 的缩写,是微软指定的编码标准,并被美国工业化标准组织收录。更名为 UCS-2
    5、UCS-2 与 UTF-8 间码值存在简单的位移关系
      

  10.   

    支持utf-8,字符比较全,不易出现错误
      

  11.   

    看了上面那么多回复,以后还是使用utf-8的,以前也出现过乱码问题
      

  12.   

    mysql,网页一直用UTF-8,出现乱码,鼠标右击网页,选择编码---UTF-8