|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
这真是一件令人抓狂的事情,花了我快三天的时间。 如何在Mysql和PDF输出中文,而且是繁简体并存。做法如下:
1: 修改 ./includes 底下的header.inc
第10行,原本的iso-xxxx改成utf8
header('Content-type: text/html; charset=' ._('utf8'));
还有第18行,原本的iso-xxxx改成utf8
echo '<meta http-equiv="Content-Type"c#ff0000">utf8') . '">';
这样所有的网页都是uft8了
2:把database里面filed的Collation需要用到中文的统统改成utf8_unicode_ci
3:在ConnectDB_mysql.inc第14行左右的 if (!mysql_select_db($_SESSION['DatabaseName'],$db))。。。。。程序区块的后面插入以下内容:
mysql_query("set names utf8;");
这样在phpmyadmin看到的资料就不是乱码了。可是还有个问题啊。。。输出PDF还是乱码。。。
4:输出PDF中文乱码,网路上看到很多解决方式
4.1:http://www.fpdf.org/phorum/read.php?f=1&i=5142&t=5142,FPDF的论坛,内容太多,看到我头昏。也没找到解决方式
4.2:http://blog.cjcht.com/index.php/henry/2007/09/06/ampa_yc_sesppdf,chinese-unicode.php要修改,而且class是一个extends一个,有点复杂,而且说明得不够详细。不过这位仁兄有个建议很好,引述如下:
“建議使用AddUniGBhwFont()而不要用AddUniCNShwFont()。因為簡體字型裏包含了繁體字型,用AddUniGBhwFont()產生繁體中文內容的pdf文件也不會有問題。如果用AddUniCNShwFont()產生簡體中文內容的pdf文件,雖然閱讀器安裝了簡體字型,但是閱讀器會把它當成繁體文件,而使用繁體字型顯示,造成一些簡體字顯示不出來。“
4.3:http://job.achi.idv.tw/?p=461,后来用了这个方式,终于可以了。简单好用,只要两个档案,class.pdf.php,FPDF_Chinese.php..真是太棒了,,谢谢这位仁兄,做法如下:
5: 到http://job.achi.idv.tw/?p=461,下载includes.rar 。解压缩到./includes底下,,,然后开始来修改
5.1:打開class.pdf.php,把第21行的 if($_SESSION['Language'] =='zh_TW.UTF-8') 注解掉,,这个是多余的。
5.2:在第49行 和82 行if($_SESSION['Language'] == 'zh_TW.UTF-8')改成你登入帐号的Language,,我就改成了if($_SESSION['Language']== 'zh_HK')
5.3:把55行的$this->AddUniCNShwFont('uni');注解掉,底下加一行
$this->AddUniGBhwFont('uni'); 这就是上面那位仁兄建议的。用简体字型来显示繁简体。。真的有效哦。
5.4:在第327行和337行的字形AdobeSongStd-Light ,改成AdobeSongStd-Light-Acro,,这样格式才会整齐,英文字不会挤在一起
如果要换字型,可以修改底下几个function,
function AddUniCNShwFont
function AddUniCNSFont
function AddUniGBhwFont
function AddUniGBFont
喝茶去了,累死我了。如果有疏漏之処,請不吝賜教
Part II
如果Client 端是Ubuntu 7.10 Gnome,打开PDF时是一片空白。。解决如下:
在weberp打完PO,系统预设用Evince打开PDF档,一片空白。应该是没有安装中文字型.还是安装Acrobatreader好了。用Synaptic package manager安装。中文字型要到这里来下载http://www.adobe.com/tw/products/acrobat/acrrasianfontpack.html,然后extract 到 /usr/lib/Adobe/Reader8/底下。进入/usr/lib/Adobe/Reader8/CHSKIT,然后执行 sudo ./INSTALL,系统会问你 Enter the location where you installed the Adobe Reader[/opt] ,输入 /usr/lib 就安装好了,繁体和日文也是这样做的
如果用Firefox打开PDF,系统会问你openwith,就选择others...然后选择 /usr/lib/Adobe/Reader8/bin/acroread-en即可
看到中文了吧,哈哈哈哈
Part III 另一个乱码问题:
在modify items detail的时候,发现Part description (short) 变成乱码,办法如下:
修改 Stocks.php 第550行
echo'<TR><TD>'. _('Part Description') . ' (' . _('short') .'):</TD><TD><inputtype="Text" name="Description" SIZE=52 MAXLENGTH=50 value="' .htmlentities($_POST['Description'],ENT_QUOTES,_('ISO-8859-1')) .'"></TD></TR>';
将 ISO-8859-1 改成 utf-8 。 不然,在mysql能看到中文,到這里会变乱码
参考资料:
1:http://www.web745.com/article_html/2006/09/433.html
2:http://job.achi.idv.tw/?p=461
3:http://www.fpdf.org/phorum/read.php?f=1&i=5142&t=5142
4:http://blog.cjcht.com/index.php/henry/2007/09/06/ampa_yc_sesppdf
[ 本帖最后由 daangenji 于 2008-9-7 11:33 编辑 ] |
|