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

歡迎訪問 生活随笔!

生活随笔

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

数据库

Php和Mysql乱码问题

發布時間:2025/1/21 数据库 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Php和Mysql乱码问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??


在mysql數據庫中有3個變量:
character_set_client
character_set_connection
character_set_results
你可以分別理解為:客戶端 連接器 返回值


客戶端 :通常有cmd下的命令行,或者瀏覽器
連接器 :這個比較抽象,我們看不到,應該是在mysql數據庫中的
返回值 : 就是以什么樣的字符編碼來給客戶端

我們一般在cmd下set names gbk 或者php文件中 mysql_query('set names utf8'),其實就是相當于同時設置上面所說的3個變量的值為 gbk 或者 utf8 ,也就是客戶端、連接器、返回值都為一樣的字符編碼,如果你足夠耐心也可以再mysql命令行下分別設置這3個變量的值,比如:

set character_set_client =gbk;
set character_set_connection = gbk;
set character_set_results = gbk;

按照你說的 數據庫已經設置了utf-8 ,php文件也設置了utf-8 ,而且在添加了 set names utf8 就不亂嗎了,你應該是用瀏覽器查看的吧?這么說你的瀏覽器應該是urf8字符集了,那么問題應該就是出在 連接器 這個環節上。字符集設置有個限制,那就是字符集編碼的大小,應該是這個規律: 客戶端 <= 連接器 <= 服務端?

那么我在說下連接器的作用,連接器就是接受客戶端傳來的數據,先接受保存起來,在轉換成服務端所需的字符編碼。比如客戶端是GBK ,連接器也是GBK,服務端是UTF8,那么 連接器就會把客戶端傳來的GBK數據先存儲起來,轉換成服務器的UTF8后傳給服務器。

那么回到字符集設置規律上,GBK存儲漢字需要2個字節,UFT8存儲漢字需要3個字節 ,如果你的客戶端是UTF8,而連接器是GBK,那么就會在存儲上出現問題,所以存入數據庫后就會亂碼。?


另外你是否進行了insert 操作,使用的 瀏覽器 還是 cmd 下命令行進行的?還有你查看是通過瀏覽器直接查看php生成的結果還是通過phpmyadmin還是cmd下的命令行查看數據庫?

轉載于:https://my.oschina.net/maner/blog/146554

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Php和Mysql乱码问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。