佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1834|回复: 23

mysql store 中文字有问题?!

[复制链接]
kengkit 该用户已被删除
发表于 30-8-2005 07:40 PM | 显示全部楼层 |阅读模式
我有一个field name 为 cname , type = "varchar(10)", Collation我已set成
"big5_chinese_ci" 但为何我store 中文字时有时会出现? 如: "马来?亚"

而且显示在web page时一定是????呢?
回复

使用道具 举报


ADVERTISEMENT

发表于 30-8-2005 09:47 PM | 显示全部楼层
有没有试过 utf-8 呢?

big 5 或 gb 比较容易出现乱码,也不是 web 的标准。
回复

使用道具 举报

发表于 30-8-2005 09:58 PM | 显示全部楼层
刚刚试了

big5_chinese_ci, gb2315_chinese_ci, utf8_general_ci 都没有问题,

但是 big5 遇到简体字,bg 遇到繁体字都会出乱码。
只有 utf8 可以同时显示简体字和繁体字。
回复

使用道具 举报

发表于 1-9-2005 06:07 PM | 显示全部楼层
  若不特去设定语言也没问题,Mysql 的 Collation 一般都自动设成 latin1_swedish_ci , 存Big5 或 GB(GBK) 都行。

  一般网站,我个人比较喜欢用GBK存,因基本上存二万一千个简繁汉字都没问题,佳礼论坛就是使用GBK中文內码。

  以utf-8存也不错,不过其单字容量较Big5/GBK大一半。

  近日为参与制作的《康熙字典網上版 http://kangxizidian.com 》,中文字全以utf-8格式在MySql存档,果然七万个中文汉字在MySql下运行都没问题。

  
回复

使用道具 举报

发表于 2-9-2005 12:40 AM | 显示全部楼层
原帖由 网管 于 1-9-2005 06:07 PM 发表
  若不特去设定语言也没问题,Mysql 的 Collation 一般都自动设成 latin1_swedish_ci , 存Big5 或 GB(GBK) 都行。

  一般网站,我个人比较喜欢用GBK存,因基本上存二万一千个简繁汉字都没问题,佳礼论 ...


大容量对目前的系统来说还算可以应付,使用 utf8 是应为受过不少繁体、简体网页的麻烦。。。
回复

使用道具 举报

kengkit 该用户已被删除
 楼主| 发表于 2-9-2005 12:16 PM | 显示全部楼层
我是使用asp.net的,INSERT data 进mysql 的queery如下:

str = "INSERT INTO data VALUES (Cname) VALUES ('车神')"

cmd.CommandText = Str

p/s : 我是使用window XP 的中文系统打字的!!

我已设定了 cname 为 utf8_general_ci ,但当我store 资料进去mysql database时,mysql database 显示 ?? (原本应该是'车神')在对应的cname column,
display资料在datagrid更不用说,为何呢??

当我manually keyin  '车神' through phpmyadmin 就可以显示正确的中文字在mysql database,但显示在datagrid里的资料就一样... 还是 "??"
回复

使用道具 举报

Follow Us
发表于 3-9-2005 01:28 AM | 显示全部楼层
如果你的 cmd.CommandText = Str 显示出中文字,那么就是 query insert 的问题,如果显示不出,就是 html/asp get/post 的问题。
回复

使用道具 举报

kengkit 该用户已被删除
 楼主| 发表于 3-9-2005 11:39 AM | 显示全部楼层
原帖由 flashang 于 3-9-2005 01:28 AM 发表
如果你的 cmd.CommandText = Str 显示出中文字,那么就是 query insert 的问题,如果显示不出,就是 html/asp get/post 的问题。


奇怪的是我test run在我的pc时,一切没问题,无论是insert 还是display chinese word...但我upload 我的application上server后,就连我insert进mysql database的中文字都自动变为 ????

为何这样怪呢?有可能是server company 的问题吗?
回复

使用道具 举报


ADVERTISEMENT

发表于 3-9-2005 11:03 PM | 显示全部楼层
你可以尝试用 application server 给你的工具来测试 mysql, 例如 cpanel 或 phpMyAdmin 来测试中文字。
回复

使用道具 举报

kengkit 该用户已被删除
 楼主| 发表于 4-9-2005 12:23 PM | 显示全部楼层
我试过了。。 如果我用phpmyadmin健入中文字就可以显示properly in mysql database.. 虽然如此,但如果我display去webpage还是一样。。。又变回????

如果不用phpmyadmin的话,所有中文字都是????

救命啊!! 为何local 电脑没问题。。 但upload to server就这样的?

local pc mysql version : MySQL 4.1.11

server mysql version : MySQL 4.1.12a-nt
回复

使用道具 举报

发表于 5-9-2005 12:22 AM | 显示全部楼层
你需要加上 mysql_query("SET NAMES 'utf8'");
否则中文字不会显现。

我找到的资料说明了:
Telling MySQL how to store the data is just half of the equation. You must also tell MySQL that the data you are passing into it is UTF-8 otherwise it will assume it is in its default encoding.
http://www.shawnolson.net/a/946/

以下是我用 php 测试的 code:


$db = mysql_pconnect('localhost',$User,$Pwd);
mysql_select_db ( $database, $db );
mysql_query("SET NAMES 'utf8'");
$rset = mysql_query( 'SELECT * FROM chinese' );

while( $row = mysql_fetch_assoc($rset) ) {
        print_r( $row );
        echo '<br>';
}
回复

使用道具 举报

kengkit 该用户已被删除
 楼主| 发表于 6-9-2005 01:49 PM | 显示全部楼层
但我使用的是asp.net!!  其实我很纳闷,为何在我电脑 (local pc)test run一切都没问题,正常store中文字在mySQL database,正常显示中文字在网页!!

现在除非我keyin chinese character through phpmyadmin,不然中文字
一定变成???,即使我这样做令mySQL DB 能显示中文字,但retrive 中文字在网页时又变成???

可以救救我吗?

注!我 set collation = utf8_general_ci

    Dim ConnStr As String = "DRIVER={MySQL ODBC 3.51 Driver};" & _
                            "SERVER=localhost;" & _
                            "DATABASE=database;" & _
                            "UID=root;" & _
                            "PASSWORD=123456;" & _
                            "OPTION=3;" & _
                            "CHARSET=utf8;"

[ 本帖最后由 kengkit 于 6-9-2005 02:10 PM 编辑 ]
回复

使用道具 举报

发表于 6-9-2005 11:46 PM | 显示全部楼层
或许 "CHARSET=utf8;" 更本就无效,何不试试用其他方法呢?

把你一部分的 code 帖上来向其他 asp.net 的高手们请教会不会更好呢?
回复

使用道具 举报

kengkit 该用户已被删除
 楼主| 发表于 7-9-2005 11:07 AM | 显示全部楼层
说得也是......

        Try
            MyConn.Open()

            Str = "SET cname 'utf8'"
            cmd.CommandText = Str
            Added = cmd.ExecuteNonQuery()

            Str = "INSERT INTO testing (cname) VALUES ('" + chinese + "')"
            cmd.CommandText = Str
            Added = cmd.ExecuteNonQuery()

        Catch ex As Exception
            success = False
            errormsg = ex.Message
        Finally
            If Not MyConn Is Nothing Then
                MyConn.Close()
            End If
        End Try

[ 本帖最后由 kengkit 于 7-9-2005 11:31 AM 编辑 ]
回复

使用道具 举报

发表于 9-9-2005 05:44 PM | 显示全部楼层
剛才測試過了, 用 php connect odbc 來那資料沒問題, mysql odbc 3.51 是支持 utf8 的.

應該是 ASP.NET 的 dr("big5").tostring 的問題.
回复

使用道具 举报

发表于 9-9-2005 06:53 PM | 显示全部楼层
經過了一連串的測試, 發現 asp.net 使用 mysql odbc 會有亂碼的問題.

現在我用 MySQL Connector Net 顯示中文字沒有問題.
回复

使用道具 举报


ADVERTISEMENT

kengkit 该用户已被删除
 楼主| 发表于 13-9-2005 02:16 AM | 显示全部楼层
原帖由 flashang 于 9-9-2005 06:53 PM 发表
經過了一連串的測試, 發現 asp.net 使用 mysql odbc 會有亂碼的問題.

現在我用 MySQL Connector Net 顯示中文字沒有問題.


会吗?是不是和我面对一样的问题呢? 但我是uploaded上server才会出现乱码的
回复

使用道具 举报

发表于 29-9-2005 09:36 PM | 显示全部楼层
嗨嗨 我也是遇到insert中文跟echo中文的問題
比如說
mysql:
insert into table(column) values ('功');
php:
echo '功';
都會有error
utf8是unicode嗎?
有一些問題
是不是所有平台下的网頁瀏覽器都一開始就有utf8?
我是用window me + 中文之星
是否也能輸入unicode的?
mysql的問題看了以上帖子大概知道如何處理
關於php那個不知道要在那裡設定?謝謝
回复

使用道具 举报

发表于 30-9-2005 01:10 AM | 显示全部楼层
原帖由 cristiano~7 于 29-9-2005 09:36 PM 发表
嗨嗨 我也是遇到insert中文跟echo中文的問題
比如說
mysql:
insert into table(column) values ('功');
php:
echo '功';
都會有error
utf8是unicode嗎?
有一些問題
是不是所有平台下的网頁瀏覽器都一開 ...



尝试使用 browser 内置的中文解码吧。
ie : view -- encoding -- chinese (big5 / gb)
firefox : view -- character encoding -- chinese (big5 / gb)
回复

使用道具 举报

发表于 1-10-2005 12:28 AM | 显示全部楼层
Database那邊我直接把default-charset成big5就不會有
parse的問題了

喔,php那邊終於找到問題的原因 那是php的big5衝碼問題
echo '功';  因為功的第二個byte = '
所以 echo 'x''會判斷到少了一個'

呃。。。想用unicode的
我是用window me的
要怎麼在text editor打出unicode呢?
還是要用什麼程式把non-unicode file轉去unicode file?
@@...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 10-8-2025 09:34 PM , Processed in 0.147700 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表