999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PHP+MySQL網站中關于上傳中文文件名照片亂碼問題的探討

2017-09-15 12:46:09
福建質量管理 2017年13期
關鍵詞:頁面數據庫

(衡陽技師學院 湖南 衡南 421101)

PHP+MySQL網站中關于上傳中文文件名照片亂碼問題的探討

李彩云

(衡陽技師學院湖南衡南421101)

PHP+MySQL網站中上傳、縮放、顯示含中文文件名照片時亂碼問題的解決方法。

PHP+MySQL網站;中文文件名照片;上傳;縮放;顯示;亂碼;解決

做網站的朋友,做信息處理系統的朋友,在做之前大抵都會思考一個基礎性問題,選用什么字符集。筆者近期使用PHP+Mysql在做一個B/S的信息處理系統,頁面使用utf-8字符集,后臺mysql數據庫使用的也是utf8字符集,操作系統是gbk字符集,用戶在上傳并縮放含中文命名的照片文件到系統時,總是存在亂碼問題,下面是筆者對這一問題的一些不成熟的解決方法,總結出來,以期拋磚引玉。

一、關于網站和mysql數據庫常用中文字符集

據統計當前主流網站使用的字符集主要有utf-8和gb2312,下表是統計結果。

各網站所用字符集

從這個統計可以看出,當前主流中文網站很多都使用gb2312字符集,它們或許是早期設計時考慮gb2312編碼更方便吧。

而使用過mysql數據庫的朋友都清楚,它的字符集很豐富,存儲處理中文為主的信息時,我們一般選擇gb2312或utf8,而使用繁體字的臺灣地區可使用big5。Gb2312存儲一個中文漢字占兩個字節,而utf8存儲一個中文漢字要三個字節。mysql服務器默認使用latin1字符集,這是支持西歐語系的,我們中國人一般會設置為utf8或gb2312,當主要是處理中文信息時,采用gb2312可節省存儲空間,幫數據庫瘦身。

二、在上傳縮放含中文文件名的照片時,字符集不一致導致的問題及解決方法

1.頁面使用gb2312,后臺mysql數據庫使用gb2312字符集,GBK的操作系統

頁面、后臺mysl數據庫如果都用gb2312,我們的操作系統是gbk,則不管是照片上傳到服務器的文件系統中,還是存儲到數據庫中都不會出現亂碼問題,再從數據庫中調回到頁面也不會出現不顯示的問題,正是皆大歡喜呀!

A、從gb2312的頁面上傳照片到gbk的服務器上

move_uploaded_file(myphoto['tmp_name'],fpath);

B、在gb2312頁面縮放照片文件

pinfo=getimagesize(fpath);//取得照片文件的尺寸信息

src=imagecreatefromjpeg(fpath);//取得照片文件的圖像資源

imagejpeg(dst,fname);//將取出的圖像資源輸出到文件

C、將包含照片信息的記錄存儲到數據庫的表中,輸出到gb2312的頁面,都不需轉換。

insstr=“insert into xs set學號='stuNumber',姓名='stuName',照片='fname'”;

res=mysqli_query(link,insstr);//將包含照片文件信息的記錄插入到數據庫的表中。

2.頁面使用utf-8,后臺mysql數據庫使用utf8字符集,GBK的操作系統

頁面使用utf-8、數據庫使用utf8、數據庫連接使用utf8、操作系統是GBK,使用PHP語言上傳并縮放含中文名稱的照片后,存放到服務器的文件夾中,顯示的照片文件名是亂碼,數據庫中存儲的路徑沒問題,但在頁面瀏覽數據時,照片不能正常顯示。頁面使用utf-8,數據庫和連接使用utf8,是標配,理應沒問題的,但因為我們使用中文操作系統,文件系統的字符集是GBK,還是存在字符集不一致的問題,所以只要與文件系統有數據傳輸,就會出問題。

要解決這一問題,可以使用PHP中的iconv()函數,該函數能將字符串或文件由一種字符集轉化為另一種字符集。如iconv(“gb2312”,”utf-8”,str)的功能是將字符串str的字符集由gb2312轉化為utf-8。

A、上傳照片文件時,加iconv()函數,使它的字符集由utf-8轉化為gb2312,上傳到服務器文件夾中時,中文文件名的照片文件的文件名不會出現亂碼。

move_uploaded_file(myphoto['tmp_name'],iconv(“utf-8”,“gb2312”,fpath));

B、縮放照片時,凡是用到照片文件的都使用iconv()函數轉換,將從文件系統導出的gb2312數據流與頁面的使用的字符集utf-8不沖突。

pinfo=getimagesize(iconv(“utf-8”,“gb2312”,fpath));//取得照片文件的尺寸信息

src=imagecreatefromjpeg(iconv(“utf-8”,“gb2312”,fpath));//取得照片文件的圖像信息

imagejpeg(dst,iconv(“utf-8”,“gb2312”,fname));//將取出的圖像資源輸出到文件

C、將包含照片信息的記錄存儲到utf8的數據庫的表中,輸出到utf-8的頁面,與gb2312字符集一樣,都不需轉換。

而如果頁面、連接都使用uft8,數據庫使用gb2312,操作系統是GBK,上傳并縮放含中文名稱的照片后,存儲到數據庫的表中時要將utf-8轉換為gb2312,輸出到頁面時,又要將gb2312轉換成utf-8。

sinfo['照片']);?>”>//將包含照片信息的記錄在utf-8的頁面顯示。

綜上所述,不管頁面、數據庫使用什么字符集,在上傳、縮放、存儲、顯示含中文文件名的照片到數據庫、到頁面時,如果有亂碼問題,我們都可以考慮使用PHP提供的iconv()進行轉換這種方法來解決。

[1]鄭阿奇主編.MySQL實用教程.電子工業出版社.2017年7月.

[2]唐俊主編.PHP+MySQL網站開發技術項目式教程.人民郵電出版社.2015年7月.

猜你喜歡
頁面數據庫
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
同一Word文檔 縱橫頁面并存
數據庫
財經(2010年20期)2010-10-19 01:48:32
主站蜘蛛池模板: 伊在人亚洲香蕉精品播放| 亚洲精品图区| 一本大道在线一本久道| 亚洲国产一区在线观看| 欧美色视频在线| 71pao成人国产永久免费视频| 91精品国产91久无码网站| 亚洲第一综合天堂另类专| 国产精品色婷婷在线观看| 亚洲一级无毛片无码在线免费视频 | 亚洲欧美一区二区三区麻豆| 狠狠色综合久久狠狠色综合| 第九色区aⅴ天堂久久香| 国产91精品久久| 久久精品66| 一级高清毛片免费a级高清毛片| 中国成人在线视频| 亚洲综合色在线| 久久精品无码国产一区二区三区| 在线免费不卡视频| 亚洲AV人人澡人人双人| 综合亚洲网| 国产JIZzJIzz视频全部免费| 精品视频福利| 在线免费亚洲无码视频| 亚洲国产欧美中日韩成人综合视频| 无码'专区第一页| 欧美精品影院| 国产在线97| 国产sm重味一区二区三区| 欧美综合区自拍亚洲综合绿色| 国产精品久久久久久久久| 久久窝窝国产精品午夜看片| 91精品aⅴ无码中文字字幕蜜桃| 暴力调教一区二区三区| 国产本道久久一区二区三区| 国产精品偷伦视频免费观看国产 | 欧美成人a∨视频免费观看| 欧美成人aⅴ| 精品无码日韩国产不卡av| 99ri精品视频在线观看播放| 无码内射在线| 久久精品免费国产大片| 国产高清不卡视频| 亚洲资源站av无码网址| 日本精品αv中文字幕| 在线观看亚洲国产| 亚洲精品国产综合99| 国产性猛交XXXX免费看| 亚洲男人的天堂在线观看| 一级一级一片免费| 日韩精品成人网页视频在线| 中文字幕欧美日韩| 亚洲第七页| 欧美中文字幕在线播放| 国产在线无码av完整版在线观看| 亚洲男人天堂久久| 久久无码免费束人妻| 另类专区亚洲| 国产精品无码在线看| 91色老久久精品偷偷蜜臀| 国产乱子伦手机在线| 一级毛片在线播放免费观看| 免费AV在线播放观看18禁强制| 国产福利2021最新在线观看| 精品国产一区91在线| 欧美日韩第三页| 日韩福利在线观看| 久久久精品无码一二三区| 亚洲一区二区精品无码久久久| 一级黄色欧美| 亚洲成人一区二区三区| 国产91视频免费| 国产h视频免费观看| 91麻豆国产精品91久久久| 男女男免费视频网站国产| 97精品国产高清久久久久蜜芽 | 四虎精品免费久久| AV熟女乱| 毛片一区二区在线看| 精品少妇人妻一区二区| 18禁色诱爆乳网站|