PHP寫入資料庫中文亂碼問題
宣告:本篇文章來自http://www.jb51.net/article/30123.htm
PHP頁面轉UTF-8編碼問題
1.在程式碼開始出加入一行:
header("Content-Type: text/html;charset=utf-8");
2.PHP檔案編碼問題
點選編輯器的選單:“檔案”->“另存為”,可以看到當前檔案的編碼,確保檔案編碼為:UTF-8,
如果是ANSI,需要將編碼改成:UTF-8。
3.PHP檔案頭BOM問題:
PHP檔案一定不可以有BOM標籤
否則,會出現session不能使用的情況,並有類似的提示:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
這是因為,在執行session_start() 的時候,整個頁面不能有輸出,但是當由於前PHP頁面存在BOM標籤,
PHP把這個BOM標籤當成是輸出了,所以就出錯了!
所以PHP頁面一定要刪除BOM標籤
刪除這個BOM標籤的方法:
1.可以用Dreamweaver開啟檔案,並重新儲存,即可以去除BOM標籤!
2.可以用EditPlus開啟檔案,並在選單“首選項”->“檔案”->"UTF-8標識",設定為:“總是刪除簽名”,
然後儲存檔案,即可以去除BOM標籤!
4.PHP以附件形式儲存檔案的時候,UTF-8編碼問題:
PHP以附件形式儲存檔案,檔名必須是GB2312編碼,
否則,如果檔名中有中文的話,將是顯示亂碼:
如果你的PHP本身是UTF-8編碼格式的檔案,
需要將檔名變數由UTF-8轉成GB2312:
iconv("UTF-8", "GB2312", "$filename");
利用程式來例項字元擷取方法
function utf8_substr($str,$len) { for($i=0;$i<$len;$i++) { $temp_str=substr($str,0,1); if(ord($temp_str) > 127){ $i++; if($i<$len){ $new_str[]=substr($str,0,3); $str=substr($str,3); } }else { $new_str[]=substr($str,0,1); $str=substr($str,1); } } return join($new_str); }
MYSQL資料庫使用UTF-8編碼的問題
1.用phpmyadmin建立資料庫和資料表
建立資料庫的時候,請將“整理”設定為:“utf8_general_ci”
或執行語句:
CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
建立資料表的時候:如果是該欄位是存放中文的話,則需要將“整理”設定為:“utf8_general_ci”,
如果該欄位是存放英文或數字的話,預設就可以了。
相應的SQL語句,例如:
CREATE TABLE `test` ( `id` INT NOT NULL , `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM ;
2.用PHP讀寫資料庫
在連線資料庫之後:
$connection = mysql_connect($host_name, $host_user, $host_pass);
加入兩行:
mysql_query("set character set 'utf8'");//讀庫
mysql_query("set names 'utf8'");//寫庫
//其實讀寫都可以只加入
mysql_query("set names 'utf8'");
就可以正常的讀寫MYSQL資料庫了。
用的appserv-win32-2.5.10做的環境,裝這個包的時候用預設的utf8編碼。
在寫資料庫連線檔案時,寫成:
$conn = mysql_connect("$host","$user","$password");
mysql_query("SET NAMES 'UTF8'");
mysql_select_db("$database",$conn);
然後在做頁面時,注意這句:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
這樣不管輸入資料庫的中文,還是頁面顯示,就都正常了。
在DW CS4版裡,預設生成的也是utf8頁面。
同樣的,如果一開始寫資料庫連線檔案時寫成: mysql_query("SET NAMES 'GBK'");
那頁面也要相應變成:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
相關推薦
PHP寫入資料庫中文亂碼問題
宣告:本篇文章來自http://www.jb51.net/article/30123.htm PHP頁面轉UTF-8編碼問題 1.在程式碼開始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2
php使用substr中文亂碼問題
php配置 字節 查看數據庫 根據 javase 推薦 substr() pla format 周天的時候對網站 https://www.javasec.cn 進行bug修復和功能更新,其中遇到一個比較有意思的小問題: 問題: 網站的置頂推薦中,有文本略縮。但是無論怎
使用jdbc連線資料庫中文亂碼問題
今天在學習jdbc時做了一個專案,專案主要實現的功能是通過jdbc連線資料庫,進行新增和查詢圖書館書籍。過程中遇到了新增中文到資料庫的亂碼問題,跟大家分享一下解決方案: 一.新增的時候是否有報錯(沒有的話直接繞道到二) 如果
mysql是我們專案中非常常用的資料型資料庫。但是因為我們需要在資料庫儲存中文字元,所以經常遇到資料庫亂碼情況。下面就來介紹一下如何徹底解決資料庫中文亂碼情況。
mysql是我們專案中非常常用的資料型資料庫。但是因為我們需要在資料庫儲存中文字元,所以經常遇到資料庫亂碼情況。下面就來介紹一下如何徹底解決資料庫中文亂碼情況。 1、中文亂碼 1.1、中文亂碼 create table user(name varchar(11)); # 建立user表
Navicat修改mysql資料庫中文亂碼問題
步驟1:開啟navict,連線你的mysql資料庫 第二步:新建資料庫。選擇連線,右鍵選擇新建資料庫 選擇:utf8 -- UTF-8 Unicode 再選擇:utf8_general_ci 第3步:新建表,每個欄位同樣選擇utf-
解決windows下mysql資料庫中文亂碼的問題
今天下午,在Qt中往mysql資料庫中插入資料時,中文顯示亂碼,如下圖所示: 開始以為是資料庫字元編碼的問題,[1]開始使用set character_set_database=utf8 在命令列上修改字元編碼, 但是重啟mysql之後,字元編碼並沒有修改成功。 [2]於是找到My
php如何解決中文亂碼問題?
我們將亂碼情況分為以下幾種,有需要的可以對照下面的幾種情況有針對性的解決亂碼問題 第一種:解決HTML中中文亂碼問題方法 如果你的HTML檔案檔案出現了亂碼問題,那麼你可以在head標籤裡面加入UTF8編碼(國際化編碼):UTF-8是沒有國家的編碼,也就是獨立於
Oracle資料庫中文亂碼問題
中文亂碼問題解決 檢視伺服器端編碼 select userenv('language') from dual; 我實際查到的結果為: AMERICAN_AMERICA.ZHS16GB 執行語句 select * from V$NLS_PARAMETE
PHP--ajax請求中文亂碼之json_encode中文亂碼
今天在呼叫一個介面時,發現我傳遞給後臺的資料中的中文莫名其妙的亂碼了。。。一開始想著是不是我前臺的呼叫方法不對,導致中文在傳遞的過程中出現了亂碼。但是我發現介面中另一個欄位使用中文就沒有問題,無奈之下,本人只能開啟phpstorm來看看後臺的介面是什麼情況,結果發現傳遞給後臺的資
SpringBoot MySql資料庫中文亂碼問題排查實紀
引言: 最近用StringBoot開發了一個簡單的小程式伺服器,發現通過post請求插入的中文欄位在資料庫中是顯示“???”的形式,本來不以為意,以為是顯示的問題,誰知通過get請求獲取資料的時候返回的也是“???”,這下就開始慌了,於是開始了問題的排查。以下為排查的過程。 首先
centos中mysql資料庫中文亂碼的解決方法
預設my.cnf配置檔案中在/etc/mycnf,開啟之後在裡面加入以下命令即可: [client] default-character-set=utf8 [mysqld] character-set-server=utf8 collation-server=u
對於mysql資料庫中文亂碼問題的解決(在所有的編碼都是utf-8的情況下中文亂碼)
在寫jdbc連結mysqll資料庫時,向其中插入中文資料出現亂碼。查看了所有的配置,都是utf-8編碼,my.ini配置檔案也修改好了,還出現這樣的亂碼,實屬不應該。 在各種部落格論壇查詢,都是修改資料庫的編碼的套路,其中也不乏有在連線資料庫的連結url中加編碼的,比如:“jdbc:mysql:
eclipse寫入mysql中文亂碼
1、response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("UTF-8"); 2、byte a[] = Dept.getBytes("ISO-8859-1");
mysql資料庫中文亂碼的問題
在idea上面新建了一個web登入專案,瀏覽器提交表單,username“李華”存入資料庫是亂碼,只好一步步解決 1.在idea中輸出請求引數username就是亂碼,也就是“form表單提交中文的亂碼問題” 解決方法:在idea中設定request編碼格式和客戶端網頁一致(以UTF-8為例
Java web後臺插入資料庫中文亂碼問題解決
前言:專案想要避免亂碼情況的出現,要保持伺服器、資料庫、專案、以及前端編碼一致。 一、專案以及前端編碼,設定。myeclipse--->右鍵專案--->Properties--->Resource--->Text file encoding-----
php echo 輸出中文亂碼
在php檔案中,大家可能經常這樣用echo "<script charset='utf-8' type='text/javascript'>alert('請輸入正確的手機號碼');window.location.href='/index';</script
mysql 存入資料庫 中文亂碼
1、要保證資料庫、表、欄位都是utf-8的資料型別。排序一直即可。 資料庫的在資料庫屬性裡面改: 表的在設計表裡面改: 欄位的也是在設計表裡面改: 常用命令: -- 檢查字符集型別show variables like 'character_set_%';-- 設定字符集型別SET
FileWriter 寫入檔案中文亂碼
File file1 = new File("C:\\1.xml"); FileWriter fw = new FileWriter(file1); fw.write("要輸入的xml字串"); fw.flush(); fw.close();
資料庫中文亂碼解決方案總結,tomcat+mysql+hibernate
我的開發環境是eclipse+tomcat+mysql+hibernate,資料落地時發現中文都成了?,網上一搜,原因有很多,這邊總結下,大家碰到可以按著一一排查: 一般編碼都會常用UTF-8編碼 1. 資料庫編碼 檢視mysql資料的的編碼,確實是utf-8 如
eclipse匯入外部專案後中文顯示亂碼問題解決,SQLyog與MySql資料庫中文亂碼問題,其他亂碼問題
要解決中文亂碼問題,就是要保持不同的位置的編碼方式一致,目前我們通常使用UTF-8編碼,將不同的位置改為相同的編碼即可。 首先是在eclipse工作環境中,對不同的編碼進行更改: 右擊專案名稱,選擇properties,將其中涉及編碼的地方都改為UTF-8即可。