當前位置:首頁 » 編程軟體 » 腳本顯示漢字正常導入資料庫亂碼

腳本顯示漢字正常導入資料庫亂碼

發布時間: 2022-06-14 10:08:11

㈠ 為什麼中文存入資料庫中會亂碼

你的mysql客戶端和你的mysql伺服器的編碼不一樣,,應為utf8編碼的中文是3個字元,而gbk編碼的中文是兩個字元,,這樣解析出來的中文就是亂碼了。。你需要該資料庫的字元集編碼。。。具體如下:
找到mysql 的ini配置文件
在[client]這里加上default_character_set = utf8
在[mysqld]這里加上character_set_server = utf8
不出意外應該可以了

㈡ 為什麼 資料庫提取中文是亂碼

從後台讀取數據時,通常會出現亂碼情況,比如「漢字」變成「?」等,造成這種情況的原因通常是編碼設置不對,解決方法如下:


第一種方法:在php中添加如下代碼,將編碼格式設為「utf-8」,代碼如下:


header("Content-Type: text/html; charset=UTF-8");


第二種方法:在php中添加另外一行代碼,同樣用來轉碼,代碼如下:


$conn = mysqli_connect($servername, $username, $password, $mysqlname);

$conn->query("SET NAMES utf8");


該種情況是先創建鏈接,之後再轉碼。


另外,在使用資料庫時,直接手動(非代碼)建表,通常會在表中輸入漢字時,瀏覽時無法顯示或顯示為「?」,造成這種情況的原因也是編碼問題,解決方案如下:


在建表或建庫時,表和庫的編碼格式一定要統一,設置成:「utf8_general_ci」,如下圖:

㈢ php讀取mysql中文數據出現亂碼的解決方法

1.PHP頁面語言本身的編碼類型不合適,這時候,你直接在腳本中寫的中文肯定是亂碼,不用說資料庫了
解決方法:選擇'UTF8'或者'gb2312',這樣客戶瀏覽器會自動選擇並出現正確的中文顯示。注意:'UTF8'或者'gb2312'都可以正確顯示中文的。
2.資料庫MySQL中的編碼類型不正確。
解決方法:創建資料庫的時候,MySQL
字元集選擇'UTF8',MySQL
連接校對選擇utf8_general_ci,這樣創建的資料庫用來存儲中文肯定沒有問題,
否則,你的中文首先在MySQL中就是亂碼,更不要期望它會給你在PHP頁面中顯示正確。
3.與平時的腳本編輯環境有關。比如,有些內容是自己用word寫的,有些是用記事本寫的,有些用editplus、ultraplus等文本編輯器。有時候就直接在DW中寫中文了,
解決方法:盡量用同一種編輯器。如果是拷貝來得既有的內容,建議用ultraplus中的編碼轉換功能把它轉換成utf8或者gb2312。
到底轉換成什麼類型並不重要,關鍵要求你的PHP
WEB應用程序中的編碼要一致就行。
4.編程訪問
MySQL時,建議添加一行代碼:mysql_query("SET
NAMES
'GBK'");

㈣ mysql資料庫中存進的是中文,為什麼查出來的亂碼

一、轉碼失敗
在數據寫入到表的過程中轉碼失敗,資料庫端也沒有進行恰當的處理,導致存放在表裡的數據亂碼。
針對這種情況,前幾篇文章介紹過客戶端發送請求到服務端。
其中任意一個編碼不一致,都會導致表裡的數據存入不正確的編碼而產生亂碼。
比如下面簡單一條語句:
set @a = "文本字元串";
insert into t1 values(@a);

  • 變數 @a 的字元編碼是由參數 CHARACTER_SET_CLIENT 決定的,假設此時編碼為 A,也就是變數 @a 的編碼。

  • 2. 寫入語句在發送到 MySQL 服務端之前的編碼由 CHARACTER_SET_CONNECTION 決定,假設此時編碼為 B。

    3. 經過 MySQL 一系列詞法,語法解析等處理後,寫入到表 t1,表 t1 的編碼為 C。
    那這里編碼 A、編碼 B、編碼 C 如果不兼容,寫入的數據就直接亂碼。


    二、客戶端亂碼
    表數據正常,但是客戶端展示後出現亂碼。
    這一類場景,指的是從 MySQL 表裡拿數據出來返回到客戶端,MySQL 里的數據本身沒有問題。客戶端發送請求到 MySQL,表的編碼為 D,從 MySQL 拿到記錄結果傳輸到客戶端,此時記錄編碼為 E(CHARACTER_SET_RESULTS)。
    那以上編碼 E 和 D 如果不兼容,檢索出來的數據就看起來亂碼了。但是由於數據本身沒有被破壞,所以換個兼容的編碼就可以獲取正確的結果。
    這一類又分為以下三個不同的小類:

    1)欄位編碼和表一致,客戶端是不同的編碼
    比如下面例子, 表數據的編碼是 utf8mb4,而 SESSION 1 發起的連接編碼為 gbk。那由於編碼不兼容,檢索出來的數據肯定為亂碼。

    2)表編碼和客戶端的編碼一致,但是記錄之間編碼存在不一致的情形
    比如表編碼是 utf8mb4,應用端編碼也是 utf8mb4,但是表裡的數據可能一半編碼是 utf8mb4,另外一半是 gbk。那麼此時表的數據也是正常的,不過此時採用哪種編碼都讀不到所有完整的數據。這樣數據產生的原因很多,比如其中一種可能性就是表編碼多次變更而且每次變更不徹底導致(變更不徹底,我之前的篇章里有介紹)。舉個例子,表 t3 的編碼之前是 utf8mb4,現在是 gbk,而且兩次編碼期間都被寫入了正常的數據。

    3)每個欄位的編碼不一致,導致亂碼和第二點一樣的場景。不同的是:非記錄間的編碼不統一,而是每個欄位編碼不統一。舉個例子,表 c1 欄位 a1,a2。a1 編碼 gbk,a2 編碼是 utf8mb4。那每個欄位單獨讀出來數據是完整的,但是所有欄位一起讀出來,數據總會有一部分亂碼。


    三、LATIN1
    還有一種情形就是以 LATIN1 的編碼存儲數據
    估計大家都知道字元集 LATIN1,LATIN1 對所有字元都是單位元組流處理,遇到不能處理的位元組流,保持原樣,那麼在以上兩種存入和檢索的過程中都能保證數據一致,所以 MySQL 長期以來默認的編碼都是 LATIN1。這種情形,看起來也沒啥不對的點,數據也沒亂碼,那為什麼還有選用其他的編碼呢?原因就是對字元存儲的位元組數不一樣,比如 emoji 字元 "❤",如果用 utf8mb4 存儲,佔用 3 個位元組,那 varchar(12) 就能存放 12 個字元,但是換成 LATIN1,只能存 4 個字元。

㈤ mysql導入資料庫後 漢字變亂碼了 怎麼回事

文件的編碼和資料庫的編碼要一致,導出時要執行set
names
utf8(
或者gbk等你資料庫的編碼),這樣就不會亂了。

㈥ sql文件導入後,中文變亂碼,怎樣解決

解決的方法和詳細的操作步驟如下:

1、首先,單擊「Objects」按鈕以查看有關此表的詳細信息,如下圖所示,然後進入下一步。

㈦ 向mysql資料庫插入漢字亂碼怎麼處理

mysql資料庫 為了保證 不出現亂碼包注意4項一直
1 創建一致 使用UTF8
CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

2. 鏈接編碼一致
$mysqli->query("SET NAMES 'UTF8'");
3. html php 頁面聲明 編碼一致
header("Content-Type: text/html; charset=utf-8");
4 . 腳本文件 編碼一致
存儲腳本文件時選擇unicode UTF8

特別提示, windows 使用中文文件名和目錄名 , 默認的是GBK 要寫入非 gbk資料庫需要轉為一致的代碼

㈧ 使用PHP向MYSQL資料庫插入中文數據時,頁面中文顯示正常,但是資料庫裡面確實亂碼,該怎麼解決

這個問題不大。
主要導出來是亂碼才問題。
你檢查過頁面是不是utf8的沒有,不行最上面加上
<?php
header("Content-Type: text/html; charset=utf-8");//好像是utf-8,你可以試試utf8,gb2312總有一個可以的啦。
?>
你在資料庫里看,你在資料庫里打:
set names utf8

要是要顯示在到頁面你才用mysql_query('set names utf8');
再說一件事,資料庫里亂碼好像還是比較常見的(只要是用那個phpmyadmin)
運作沒問題都沒事的。

㈨ 資料庫導入sql後中文亂碼怎麼解決

肯定是它的資料庫和你的資料庫的編碼不一致。
查看他的資料庫的編碼,比如為A編碼。
查看你的資料庫的編碼,比如為B編碼。

用ultraedit打開腳本文件(給你的sql文件),另存為另一個文件(保存時選擇你的編碼B)
然後再導入。

㈩ 中文插入資料庫為什麼顯示亂碼

① 首先把MySQL的服務停掉 在運行窗口輸入:net stop mysql
② 把伺服器和客戶端的字元集改成自己想用的字元集:GB2312或是utf8等……
具體操作為:打開mysql安裝目錄下的myini.tet;
找到default-character-set,將其改為自己想用的字元集:GB2312或是utf8等……,要注意的是這里有兩個default-character-set,用ctrl+f定位在文件最前面輸入default就會找到,都要改過來;
③ 重啟MySQL伺服器,在運行窗口輸入:net start mysql
④ 最重要的是一點是,到這里我們已經能夠解決亂碼問題了,可問題是我們依然還會出現亂碼問題,這是因為我們現在的表被創建的時候用的是默認的字元集(latin1),所以這時候我們要把表刪除,然後重建就可以了

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:375
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:610
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:31
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:940
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:802
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:510
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371