请犬犬以及众高手给我回答,急~~~

hnssp 2003-11-27 12:21:47
我的MYSQL插入中文后,显示为乱码。当转换为ISO8859-1时,插入后正常。
我按照以往贴子上的方法,在my.ini后面加
[mysqld]
default-character-set=gbk
或者
[mysqld]
default-character-set=gb2312
均无用处。
试过D:\pro\mysql\bin>mysqld --default-character-set=gbk方法,也不行,

请看我的my.ini内容是否有错~~~
#This File was made using the WinMySQLAdmin 1.4 Tool
#2003-11-26 23:22:17

#Uncomment or Add only the keys that you know how works.
#Read the MySQL Manual for instructions

[mysqld]
basedir=D:/mysql
#bind-address=218.29.219.87
datadir=D:/mysql/data
#language=D:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
#set-variable=key_buffer=16M
[WinMySQLadmin]
Server=D:/mysql/bin/mysqld-nt.exe
user=root
password=abc123
[mysqld]
default-character-set=gb2312
...全文
30 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
haozw 2003-11-29
  • 打赏
  • 举报
回复
我的ini里没有添加default-character-set=gb2312。我可以在linux命令模式中往mysql中输入中文,但我从程序中往mysql输入中文就成了乱码,这是因为没加入那一句的原因吗?
hnssp 2003-11-29
  • 打赏
  • 举报
回复
我也正在为这个问题烦恼,我在插入时和查询时都做了字符转换,数据库中以及页面输出都能正确显示中文,可又无法条件查询了,迷茫中~~~~~~~
谁能帮帮我,谁有resin+mysql的代码,
hnssp2003@yahoo.com.cn
loveflea 2003-11-28
  • 打赏
  • 举报
回复


String ConnStr="jdbc:mysql_caucho://localhost:3306/ssp";

=>

String ConnStr="jdbc:mysql_caucho://localhost:3306/ssp?useUnicode=true&characterEncoding=gb2312";
loveflea 2003-11-28
  • 打赏
  • 举报
回复
String ConnStr="jdbc:mysql_caucho://localhost:3306/ssp";

=>

String ConnStr="jdbc:mysql_caucho://localhost:3306/ssp?useUnicode=true&characterEncoding=gbk";

直接插入中文??
sandyde2 2003-11-28
  • 打赏
  • 举报
回复
case sensitive..
hnssp 2003-11-28
  • 打赏
  • 举报
回复
我就是用这页代码试的。
我用的是resin2.1.6与mysql4.0.16,以下为全部代码
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.sql.*,java.util.*"%>
<%
String DBDriver="com.caucho.jdbc.mysql.Driver";
String ConnStr="jdbc:mysql_caucho://localhost:3306/ssp";
String MyUser="root";
String MyPassword="abc123";
Class.forName(DBDriver);
Connection conn = DriverManager.getConnection(ConnStr,MyUser,MyPassword);
Statement stmt=conn.createStatement();
String str="你好";
str = new String(str.getBytes("gb2312"),"iso-8859-1") ;
String sql="insert into user values('','"+str+"')";
stmt.executeUpdate(sql);
sql="select * from user";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()) {
String aa=rs.getString(2);
aa=new String(aa.getBytes("iso-8859-1"),"gb2312");
out.print("<p><font color='#800000'>");
out.print(aa);
out.print("</p></font>");
}
%>
shuixin13 2003-11-28
  • 打赏
  • 举报
回复
全部代码给我看看吧,
MSN : shuixin13@hotmail.com
hnssp 2003-11-28
  • 打赏
  • 举报
回复
我试了N种方法,结果还是一样乱码
插入时还必须转换为iso-8859-1形式,取出还得再转为GB2312,才能正确显示汉字
没有其它办法改变一下吗,让只需要一次转换就行?

shuixin13 2003-11-28
  • 打赏
  • 举报
回复
数据库只是一个仓库,
你放入什么东东,
就能取出什么东东,
不会依据 default-character-set=gb2312 的配置而发生改变,

default-character-set=gb2312 的作用仅仅作用于排序与检索

应该注意的就是,
你以什么内码形式保存入数据
那么在读取时也要以这样的内码形式显示出来
hnssp 2003-11-28
  • 打赏
  • 举报
回复
不知道为什么,我用这句,程序不认
java.sql.SQLException: Unknown database 'ssp?useunicode=true&characterencoding=gb2312'
hnssp 2003-11-27
  • 打赏
  • 举报
回复
还有,你知道resin的默认字符是哪种吗?
hnssp 2003-11-27
  • 打赏
  • 举报
回复
晕死了··~~~
我试了N次,结果还是一片乱码,怎么办呢。
我只有用str = new String(str.getBytes("gb2312"),"iso-8859-1") ;转换一下才能插入中文
难道还有哪里错了吗?
shuixin13 2003-11-27
  • 打赏
  • 举报
回复
是的,其它的都是被注释了的呀,
要不要都无所谓的
hnssp 2003-11-27
  • 打赏
  • 举报
回复
什么意思?是不是把my.ini改成这样,其它的都不要了吗?
shuixin13 2003-11-27
  • 打赏
  • 举报
回复
[mysqld]
basedir=D:/mysql
datadir=D:/mysql/data
default-character-set=gb2312

[WinMySQLadmin]
Server=D:/mysql/bin/mysqld-nt.exe
user=root
password=abc123

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧