亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        PHP+MySQL網(wǎng)站中關(guān)于上傳中文文件名照片亂碼問題的探討

        2017-09-15 12:46:09
        福建質(zhì)量管理 2017年13期
        關(guān)鍵詞:字符集亂碼文件名

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

        PHP+MySQL網(wǎng)站中關(guān)于上傳中文文件名照片亂碼問題的探討

        李彩云

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

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

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

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

        一、關(guān)于網(wǎng)站和mysql數(shù)據(jù)庫常用中文字符集

        據(jù)統(tǒng)計當(dāng)前主流網(wǎng)站使用的字符集主要有utf-8和gb2312,下表是統(tǒng)計結(jié)果。

        各網(wǎng)站所用字符集

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

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

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

        1.頁面使用gb2312,后臺mysql數(shù)據(jù)庫使用gb2312字符集,GBK的操作系統(tǒng)

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

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

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

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

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

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

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

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

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

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

        2.頁面使用utf-8,后臺mysql數(shù)據(jù)庫使用utf8字符集,GBK的操作系統(tǒng)

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

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

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

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

        B、縮放照片時,凡是用到照片文件的都使用iconv()函數(shù)轉(zhuǎn)換,將從文件系統(tǒng)導(dǎo)出的gb2312數(shù)據(jù)流與頁面的使用的字符集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的數(shù)據(jù)庫的表中,輸出到utf-8的頁面,與gb2312字符集一樣,都不需轉(zhuǎn)換。

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

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

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

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

        [2]唐俊主編.PHP+MySQL網(wǎng)站開發(fā)技術(shù)項目式教程.人民郵電出版社.2015年7月.

        猜你喜歡
        字符集亂碼文件名
        這些真的不是亂碼,是漢字
        MySQL數(shù)據(jù)庫字符集的問題研究
        右鍵調(diào)用多重更名更方便
        電腦愛好者(2019年9期)2019-10-30 03:43:29
        Excel輕松提取文件名
        ORACLE字符集問題的分析
        ORACLE數(shù)據(jù)庫字符集問題及解決方法
        醫(yī)院信息系統(tǒng)Oracle數(shù)據(jù)庫中導(dǎo)入數(shù)據(jù)中文亂碼的解決技術(shù)
        炫邁:用神奇亂碼勾引你視線
        不讓長文件名成為“絆腳石”
        電腦迷(2014年8期)2014-04-29 07:37:40
        如何解決Tomcat的亂碼
        国内精品久久久久国产盗摄| 蜜桃av抽搐高潮一区二区| 无码人妻丰满熟妇区毛片| av天堂精品久久久久| 亚洲无码一二专区| 蜜桃网站在线免费观看视频| 中文字幕一区二区三区四区| 国产女人18毛片水真多18精品| 亚洲人成人无码www影院| 韩日美无码精品无码| 亚洲日韩精品欧美一区二区三区不卡| 日本中出熟女一区二区| 日本不卡在线视频二区三区| 国产乱子轮xxx农村| 欧美精品久久久久久久自慰| 久久er这里都是精品23| 新久久国产色av免费看| 亚洲av无码片vr一区二区三区| 国语对白做受xxxxx在线中国| 一本大道久久a久久综合| 亚洲国产精品成人一区二区三区| 嫩草伊人久久精品少妇av| 亚洲精品一区国产欧美| 国产a级午夜毛片| 大又黄又粗又爽少妇毛片| 欧美激情视频一区二区三区免费| 性生交大全免费看| 九九在线精品视频xxx| 手机在线看片在线日韩av| 亚洲av人片在线观看| 国产男女无遮挡猛进猛出| 欧美国产日本精品一区二区三区| 开心五月激动心情五月| 国产一区二区视频在线免费观看| 亚洲国产成人无码av在线影院| 亚洲性啪啪无码AV天堂| 亚洲国产日韩综合天堂| 久久婷婷五月综合色欧美| 人妻 日韩精品 中文字幕| 亚洲无码中文字幕日韩无码| 麻豆人妻性色av专区0000|