c#修改mysql中文变问号
纠结一天了mysql5.1虚拟空间的数据库,字符集utf8。.net2.0具体情况就是:用命令行insert插入、update修改、select查看都没问题c#环境sel...
纠结一天了
mysql5.1 虚拟空间的数据库,字符集utf8 。.net2.0
具体情况就是:
用命令行insert插入、update修改、select查看都没问题
c#环境select调用就没问题,中文可以用文本显示
但一用insert插入、update修改 中文就成了问号,无语啊
到底怎么个情况?
求大神! 展开
mysql5.1 虚拟空间的数据库,字符集utf8 。.net2.0
具体情况就是:
用命令行insert插入、update修改、select查看都没问题
c#环境select调用就没问题,中文可以用文本显示
但一用insert插入、update修改 中文就成了问号,无语啊
到底怎么个情况?
求大神! 展开
5个回答
展开全部
这个问题,首先你要找出到底是你的程序是数据库的问题或问题。
测试,看看你的变量在声明中不会出现乱码,如果前端的问题,然后尝试用什么方法
UTF8编码= Encoding.UTF8;
和编码defaultCode =编码。默认
/ /将字符串转换为一个byte []。
字节[] utf8Bytes default.GetBytes(UTF8字符串);
/ /执行从一种编码转换到其他。
字节[] defaultBytes Encoding.Convert(UTF8 defaultCode utf8Bytes);
数据库中的垃圾问题,那就是建立一个数据库时,可使用约
1建立一个数据库:指定类型的字符集
创建DATABASE海辰
CHARACTER SET'GBK'
COLLATE'gbk_chinese_ci'; / /注意
建表指定的字符集
> CREATE TABLE学生(
ID的数据类型为varchar(40)NOT NULL DEFAULT“
用户名VARCHAR(40)NOT NULL DEFAULT”
)ENGINE = InnoDB中的默认charset = GBK; / /注意
要找出乱码的位置,以便更好地解决问题
测试,看看你的变量在声明中不会出现乱码,如果前端的问题,然后尝试用什么方法
UTF8编码= Encoding.UTF8;
和编码defaultCode =编码。默认
/ /将字符串转换为一个byte []。
字节[] utf8Bytes default.GetBytes(UTF8字符串);
/ /执行从一种编码转换到其他。
字节[] defaultBytes Encoding.Convert(UTF8 defaultCode utf8Bytes);
数据库中的垃圾问题,那就是建立一个数据库时,可使用约
1建立一个数据库:指定类型的字符集
创建DATABASE海辰
CHARACTER SET'GBK'
COLLATE'gbk_chinese_ci'; / /注意
建表指定的字符集
> CREATE TABLE学生(
ID的数据类型为varchar(40)NOT NULL DEFAULT“
用户名VARCHAR(40)NOT NULL DEFAULT”
)ENGINE = InnoDB中的默认charset = GBK; / /注意
要找出乱码的位置,以便更好地解决问题
TableDI
2024-07-18 广告
2024-07-18 广告
当两个表格需要匹配出不同的数据时,通常的做法是使用某个共同的关键字段(如ID、姓名等)来对比。首先,确定两个表格中的关键字段是否一致,并确保它们的数据格式相同。然后,使用数据处理软件(如Excel、SQL等)对两个表格进行联接或查询操作。通...
点击进入详情页
本回答由TableDI提供
展开全部
这个问题首先你要搞清楚到底是数据库的问题还是你程序的问题。
测试一下,看看你在语句中的变量部分是不是乱码,如果是前端的问题,那就试试一下方法
Encoding utf8= Encoding.UTF8;
Encoding defaultCode= Encoding.Default;
// Convert the string into a byte[].
byte[] utf8Bytes = default.GetBytes(utf8String );
// Perform the conversion from one encoding to the other.
byte[] defaultBytes = Encoding.Convert(utf8, defaultCode, utf8Bytes );
如果是数据库的乱码问题,那是建库的时候的问题,可以采用一下方法
1 建立数据库时候:指定字符集类型
CREATE DATABASE haichen
CHARACTER SET 'gbk'
COLLATE 'gbk_chinese_ci'; //注意这里
2.建表的时候 也指定字符集
CREATE TABLE student (
ID varchar(40) NOT NULL default '',
UserID varchar(40) NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=gbk; // 注意这里
要搞清楚乱码的位置才能更好的解决问题
测试一下,看看你在语句中的变量部分是不是乱码,如果是前端的问题,那就试试一下方法
Encoding utf8= Encoding.UTF8;
Encoding defaultCode= Encoding.Default;
// Convert the string into a byte[].
byte[] utf8Bytes = default.GetBytes(utf8String );
// Perform the conversion from one encoding to the other.
byte[] defaultBytes = Encoding.Convert(utf8, defaultCode, utf8Bytes );
如果是数据库的乱码问题,那是建库的时候的问题,可以采用一下方法
1 建立数据库时候:指定字符集类型
CREATE DATABASE haichen
CHARACTER SET 'gbk'
COLLATE 'gbk_chinese_ci'; //注意这里
2.建表的时候 也指定字符集
CREATE TABLE student (
ID varchar(40) NOT NULL default '',
UserID varchar(40) NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=gbk; // 注意这里
要搞清楚乱码的位置才能更好的解决问题
追问
可以用select搜索英语(搜索中文就搜不到)行和列并用c#显示出中文
那么可以确定只是在程序上传命令字符串到数据库接受字符串这期间 中文 出了问题
如果是c#的问题,mysql插入行或修改值 包含字符数组的命令怎么写?
数据库的话你们说的前置set names utf8或者先运行set names utf8;或者gbk或者gb2312神马的都没效果,然后呢?
我用的mysql.date插件,是否这个出了问题?
追答
你插入断点调试,输出你自己想要的信息就可以看到是不是乱码了。一般乱码出现在数据库或者是前端。。插件基本是没问题的吧
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的文件编码是否为utf8 ,不是则转换为utf8 ,先执行set names utf-8试试呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就是你的c#字符集没设对
连接字符串charset设置为utf8没?
连接字符串charset设置为utf8没?
追问
vs2010怎么设默认字符集?
追答
数据库连接字符串里可以设置
类似“天天好宝宝”的格式,你参考一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<appSettings>
<add key="Conn" value="Server=127.0.0.1;userid=root;password=test;Database=game;Port=3306;CharSet=utf8;"/>
</appSettings>
这个您试过么?加上CharSet=utf8
<add key="Conn" value="Server=127.0.0.1;userid=root;password=test;Database=game;Port=3306;CharSet=utf8;"/>
</appSettings>
这个您试过么?加上CharSet=utf8
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询