当前位置:首页 » 数据仓库 » linux修改数据库编码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

linux修改数据库编码

发布时间: 2023-07-19 06:43:21

1. Qtsql编程RedHat linux系统下oracle数据库中文乱码

  1. 首先确认你的NLS_LANG环境变量是AMERICAN_AMERICA.US7ASCII,拼写无误

  2. 统一编码设置:

    统一GBK编码(gbk或gb18030)
    QTextCodec*gbkTC=QTextCodec::codecForName("gbk");
    QTextCodec::setCodecForTr(gbkTC);
    QTextCodec::setCodecForLocale(gbkTC);
    QTextCodec::setCodecForCStrings(gbkTC);

    统一UTF8编码(utf-8或utf8)
    QTextCodec*utg8TC=QTextCodec::codecForName("utf-8");
    QTextCodec::setCodecForTr(utg8TC);
    QTextCodec::setCodecForLocale(utg8TC);
    QTextCodec::setCodecForCStrings(utg8TC);
  3. 编码转换/前提也是要设置默认编码,然后针对来源字符串的编码进行转换,例如:

    QTextCodec*gbkTC=QTextCodec::codecForName("gb18030");
    QTextCodec*utg8TC=QTextCodec::codecForName("utf-8");

    QTextCodec::setCodecForTr(gbkTC);
    QTextCodec::setCodecForLocale(gbkTC);
    QTextCodec::setCodecForCStrings(gbkTC);

    1.UTF-8转换GBK
    QStringUTF2GBK(QStringutfStr)
    {
    returngbkTC->toUnicode(utfStr.toLocal8Bit());
    }

    2GBK转换UTF-8
    QStringGBK2UTF(QStringgbkStr)
    {
    returnutg8TC->toUnicode(gbkStr.toUtf8());
    }

2. 数据库乱码怎么解决

展开快讯
登录
首页
专栏
问答
沙龙
快讯
团队主页
开发者手册
智能钛AI
在线学习中心
TVP
返回腾讯云官网
彻底解决MySQL中文乱码
mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。

1、中文乱码

1.1、中文乱码

无法插入中文字符:

1.2、查看表字符编码

我们可以看到表的默认字符集是latin1.

所以我们在创建表的时候就需要指定表的字符集:

这样在Linux里面可以访问并且可以插入与访问这个表了。

1.3、数据库与操作系统编码

虽然在服务器端可以显示中文正常,但是在客户端可能会显示乱码。因为我们的服务器是UTF8。

而且数据库的编码也存在问题。

这里我们可以看character_sert_database与character_set_server的字符集都是latin1.那么在mysql数据库中,server,database,table的字符集都默认是latin1.下面我们就来看看如何解决mysql乱码情况。

2、mysql设置变量的范围

2.1、session范围

查看数据库编码:

修改字符编码:

我们可以看到字符集已经修改成都是utf8了。但是这里有一个问题,那就是我们重新打开一个命令窗口然后查看数据编码就会出现下面的画面:

3. navicat for mysql运行sql文件出错,怎么办

  1. 在navicat for mysql中选择连接服务器的数据库,右键选择数据传输.

  2. 在连接服务器中的数据库上新建备份,从备份中导出.sql,再导入到本地数据库中。

  3. 找到原因,原来是MySQL导入大批量数据的时候超出了默认允许最大的数据包,所以就提示MySQL server has gone away。

  4. 找到my.cnf,在[mysqld]加入:max_allowed_packet=300M。(意思是最大允许数据包300M)

  5. 重启服务即可。

  6. 如果没能解决问题,那就是默认字符集设置与数据库设置的不一致。

  7. Windows中修改用户连接字符编码格式:C:Program FilesMySQLMySQL Server 5.1my.ini文件中修改default-character-set=utf8。

  8. Linux中修改用户连接字符编码格式:修改my.cnf(目录在/etc/my.cnf),在[client]增加如下代码 default-character-set = utf8 。

  9. 修改完成,重启服务。