網際網路 >
字元編碼的學問
網站伺服器上的中文檔案無法透過瀏覽器下載?又是Big5的問題!
發生原因: 資料庫被用戶上傳了萬惡的中文檔案,於是呢,設定上只認UFT8的各家瀏覽器就哭了....特別是chrome這種URL不能改認BIG5的就慘了,你的用戶永遠只會看見一串亂碼後的網址傳送 Not Found 404的頁面...... 不然就是例如只能出現這種建議方案:無法下載中文檔名的附件嗎? 取消IE瀏覽器「工具/網際網路選項/進階/國際*/傳送 UTF-8 URL(就是不能打V哦)」,然後重新啟動瀏覽器即可 But!這樣子不想用IE,甚至不能用IE的廣大手機用戶怎麼辦? 解決方案: 感謝前人種樹,簡單來說就是把apache當中加入一個mod,名稱為:為fileiri_module 設定方式如下: 1.用centos就很開心了,因為只需要 yum -y install httpd-devel <---加入apache裡mod的編譯器 wget http://dev.w3.org/apache-modules/mod_fileiri/mod_fileiri.c <---上網去把fileiri.c抓回來~ 在你抓檔案的目錄下指令: apxs -i -a -c mod_fileiri.c <----完成編譯,會自動幫你放進apache喔! /etc/httpd/conf/httpd.conf 底下會多出這一行 LoadModule fileiri_module /usr/lib/httpd/modules/mod_fileiri.so <----掛載本module 我們現在只需要在上面這行字的底下多加上: <IfModule mod_fileiri.c> FileIRI On FilenameCharset Big5 </IfModule> 下指令service httpd restart重開apache,一切就搞定了! 參考文獻: ------------------------------------------------------------------------------------------------------ 20131226新增ubuntu底下的安裝方法,因為架構略有不同所以指令與centos有一點差別,apache2 mod_fileiri.so 1.apt-get install apache2-dev 2.wget http://dev.w3.org/apache-modules/mod_fileiri/mod_fileiri.c 3.apxs2 -i -a -c mod_fileiri.c 4.在/etc/apache2/apache2.conf檔案末端底下加入以下內容: <IfModule mod_fileiri.c> FileIRI On FilenameCharset Big5 </IfModule> 5.service apache2 restart ,搞定。 附記: 因為apache2在ubuntu下設定檔稍微比較麻煩,所以如果要載入LoadModule fileiri_module卻在mods-enabled當中找不到,那麼就必須要手動啟用喔! ubuntu下啟動指定Module,可使用a2enmod這個指令 |
Big5相關的問題
處理與Big5相關的問題: 我的名字怎麼變成了問號?-中文資料處理漫談 Big5亂碼表 MySQL 中文編碼徹底研究 1.解決Big5存入MySQL後變成UTF-8亂碼問題 在一開始與DB連結後,加入以下這一行即可。
<?php $mysqli = new mysqli(hostname, account, password, DB); $result = $mysqli->query("SET NAMES 'big5'"); //使用Big5編碼存入MySQL ?> 若是在PHP裡output出來的結果顯示為UTF-8的亂碼, 可先用記事本開啟該檔再另存新檔, 其中最下方的編碼得選ANSI, 而非UTF-8。 接下來再用DW、UD等文字編輯器來編輯即可! 2.校對影響的主要是排序,其實跟資料怎麼存沒關係。就算你的資料是big5編碼,校對用utf-8也不會有影響,只要存入跟取出的校對一致,同時與table設定的一致,就不會有問題。((真的嗎??)) 3.PHP字串處理 |
1-2 of 2