国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

nodejs和C語(yǔ)言插入mysql數(shù)據(jù)庫(kù)亂碼問(wèn)題的解決方法

2024-05-06 15:18:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在這里記錄了nodejs過(guò)程中的一些亂碼情況,這里的亂碼主要是由于網(wǎng)頁(yè)的編碼方式與nodejs的默認(rèn)解碼方式(utf8)不一致所造成的。這一次要說(shuō)一下的是在C語(yǔ)言和nodejs與MySQL進(jìn)行交互的時(shí)候出現(xiàn)的亂碼問(wèn)題。

       1,由于爬蟲(chóng)程序在多個(gè)Docker中執(zhí)行,因此我需要定期的同步每一個(gè)docker中的mysql數(shù)據(jù)到一個(gè)全局的mysql數(shù)據(jù)表中。使用nodejs進(jìn)行數(shù)據(jù)同步,出現(xiàn)中文亂碼。要知道在每一docker中的中文是不存在亂碼的。原因是nodejs默認(rèn)處理字符是utf8,而mysql默認(rèn)是latin1,畢竟是歐洲人開(kāi)發(fā)的數(shù)據(jù)庫(kù)。分析如下

       命令show variables like 'char%';得到的結(jié)果如下:

+--------------------------+----------------------------+| Variable_name | Value  |+--------------------------+----------------------------+| character_set_client | latin1  || character_set_connection | latin1  || character_set_database | latin1  || character_set_filesystem | binary  || character_set_results | latin1  || character_set_server | latin1  || character_set_system | latin1  || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+

       即在建立數(shù)據(jù)庫(kù)的時(shí)候不特別指定,則數(shù)據(jù)庫(kù),數(shù)據(jù)表的以及數(shù)據(jù)字段的編碼格式為默認(rèn)值,而默認(rèn)值在不更改配置文件的時(shí)候是latin1(默認(rèn)安裝形式)。由于utf8是較為通用的編碼方式,因此我們將數(shù)據(jù)庫(kù)的所有編碼方式改為utf8。這里需要說(shuō)明的是mysql的編碼分為好幾個(gè)層次,包括數(shù)據(jù)庫(kù)級(jí)別,數(shù)據(jù)表級(jí)別以及數(shù)據(jù)字段級(jí)別等,我這里沒(méi)有去深究這些方面,一個(gè)個(gè)去設(shè)置每個(gè)字段,每個(gè)表的編碼方式,而是把所有的編碼方式均設(shè)置為utf8。具體如下: 

      vi /etc/my.cnf修改my.cnf文件如下:

[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysqldefault-character-set = utf8character_set_server = utf8[mysql]default-character-set = utf8[mysql.server]default-character-set = utf8# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0
[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.piddefault-character-set = utf8[client]default-character-set = utf8

       修改完之后,重起mysql服務(wù)service mysqld restart

       命令show variables like 'char%';再次查看編碼格式,得到的結(jié)果如下:

+--------------------------+----------------------------+| Variable_name | Value  |+--------------------------+----------------------------+| character_set_client | utf8  || character_set_connection | utf8  || character_set_database | utf8  || character_set_filesystem | binary  || character_set_results | utf8  || character_set_server | utf8  || character_set_system | utf8  || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 新宁县| 阳泉市| 南投市| 庆城县| 芷江| 抚顺市| 元氏县| 双江| 分宜县| 金川县| 德令哈市| 本溪| 灵台县| 达孜县| 泸西县| 沁阳市| 连州市| 利辛县| 丽江市| 滁州市| 碌曲县| 昭苏县| 平原县| 兴文县| 额敏县| 竹北市| 新巴尔虎左旗| 潜山县| 惠安县| 泸西县| 海丰县| 渑池县| 邵东县| 崇仁县| 广德县| 永昌县| 新化县| 攀枝花市| 卓资县| 仁化县| 巴楚县|