日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql gb2312转utf8_如何把数据从GB2312转换成UTF-8

發(fā)布時間:2023/12/29 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql gb2312转utf8_如何把数据从GB2312转换成UTF-8 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我使用了iconv和mb_convert_encoding兩個函數(shù)都試了,然后發(fā)現(xiàn)結果是一樣的,都會出現(xiàn)各種問題,不是哪里少字了就是直接錯誤,請問大神怎么解決啊

回復討論(解決方案)

iconv("GB2312","UTF-8//IGNORE",$data)

確定 原數(shù)據(jù)是 GB2312編碼嗎

是的 確定了 是ANSI格式的

是的 確定了 是ANSI格式的

你的文件頁面編碼是什么? 要不把代碼貼出來看看

是這樣的 在做一個scv文件的導入功能 然后用記事本打開顯示保存編碼是ANSI,現(xiàn)在用fgetcvs來循環(huán),在里面怎么弄都是不正常的。之前用記事本打開保存為utf-8導入功能是OK的 ,所以頁面編碼應該是utf-8

GB2312 是 GBK 的子集

UCS-2 是 GBK 的變體

UCS-2 與 UTF-8 間存在簡單的位移操作

所以從 GB2312 或 GBK 轉換到 UTF-8 不存在數(shù)據(jù)丟失的現(xiàn)象

反過來就有丟失的可能了

ANSI 不能說明任何問題

ANSI 泛指國家標準,計算機中指的是操作系統(tǒng)的默認字符集(可手工修改)

以 windows 為例,簡體中文系統(tǒng)就是 GBK、繁體中文系統(tǒng)就是 BIG5

那幫忙看下好嗎 我填寫的cvs文件中地區(qū)的信息是湖北省,湖南省,廣東省,通過iconv('GB2312','UTF-8',$str),就轉成一個‘省’字,假如是山東省或者山西省是完全翻譯,四川省翻譯成‘拇ㄊ’,這個是什么原因啊 卡了2天了

你能把你的文件放到云盤嗎?

或是

echo base64_encode(file_get_contents('你的csv文件名', false, null, 0, 1000));

貼出結果

結果是這樣的:

然后我用 echo iconv('GBK','UTF-8',file_get_contents($file['tmp_name']));return false;

得到的完全都是utf8的數(shù)據(jù),可惜這樣不是我想要的

1、貼出 base64 數(shù)據(jù)

2、說一下你打算做什么

把代碼貼出來 看一下 簡單的敘述你的需求

seDC6yxDUk2x4MLrLMP7s8YsvPKzxizQ0NK1LCK/zbunwODQzaOosOzKwrSmOjEs1+7W1b/Nu6c6Miy0+sDtycw6M6OpIiwiveHL48Dg0M2jqNfu1tW/zbunOjEsveHL47/Nu6c6MizP+srbv827pzozo6kiLMv5yvS/zbunLMv51NrH+NPyLMGqz7XIyyzBqs+1yMu157uwLLXY1rcssbjXoiyxuNeiMiyxuNeiMw0KLGZnZ2csc2RmZ2ZkaGgsc2FkLM28yum53dTEwMDK0iwzLDAsZmRnZGZnLMm9tqvKoSxhc2RmZywxMzgwMDEzODAwMCxmZGhmZ2hmLGFhYSxiYmIsY2NjDQo=

我想要的就是通過fgetcsv函數(shù)循環(huán)每行記錄組成數(shù)組,存入數(shù)據(jù)庫 但是直接file_get_contents的話拿到的想做到這種效果比較困難,因為在cvs文件里好多個字段,有些可填有些必填。所以才那么糾結

那根編碼轉換有什么關系$fp = fopen('你的csv文件名', 'r');while($row = fgetcsv($fp)) { $res[] = $row;}print_r($res);

謝謝版主大大這么晚了還在幫忙解決問題 ,是這樣的 ,cvs文件的編碼是gb2312的,數(shù)據(jù)庫編碼是utf8的,然后我裝進數(shù)組之前要把這里獲取到的數(shù)據(jù)和庫里面的做比對,來獲取我要的數(shù)據(jù),而且cvs文件里好多字段的都是漢字,所以要轉碼才能入庫,問題是在外面file_get_contents之后轉碼可以進去循環(huán)里面一個一個轉碼就不行。

不需要轉碼

只需在比較之前執(zhí)行一次 mysql_query('set names gbk'); 就可以了

版主大大 再問一個問題啊 ,那我的gbk編碼的數(shù)據(jù)如何入庫啊,庫里面是utf8的編碼,我懷疑是不是fegtcvs這個函數(shù)的作用啊 ,再里面轉碼就不行在外面轉碼就可以

gbk 的數(shù)據(jù)插入到 utf8 的表,只需在插入前執(zhí)行一次 mysql_query('set names gbk'); 就可以了

mysql_query(' set names gbk');

這條指令的作用是:通知 mysql 現(xiàn)在用 gbk 字符集進行操作

轉碼的工作由 mysql 自己完成

恩 謝謝版主大大 ,雖然說我換了file代替了fgetcsv實現(xiàn)了功能

本文原創(chuàng)發(fā)布php中文網(wǎng),轉載請注明出處,感謝您的尊重!

總結

以上是生活随笔為你收集整理的mysql gb2312转utf8_如何把数据从GB2312转换成UTF-8的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。