1 頁 (共 1 頁)

[問題] Download Topic or Post

發表於 : 2005-01-28 22:31
依夢兒
問題外掛:Download Topic or Post (http://www.phpbbhacks.com/download/3233)
使用版本:phpBB 2.0.11
狀況描述:

如果主題或是文章內容有日文字(非 BIG-5 日文),那麼下載文字檔的日文就會變成 〹 這樣的 Unicode 參照碼。
所以想請教一下,有沒有辦法讓外掛在下載文字檔前先自動將 Unicode 參照碼轉為原來的日文,然後再儲存到文字檔中?

發表於 : 2005-01-28 23:04
Mac
給個短篇文章看看是什麼樣子吧?而且,非 BIG-5 日文是什麼編碼?

~Mac

發表於 : 2005-01-29 01:49
依夢兒
http://www.project-minerva.org/home/viewtopic.php?t=521
右上角那一個磁碟片圖示,點下去就是了....

用櫻花輸入法打的日文就是 BIG-5 日文了,目前只有台灣在用。
簡單的說,就是用繁體中文造字集造出來的日文,並非真正的日文,像是:

! <-- 這一行是 BIG-5 日文,有裝櫻花輸入法或是中國海字集才看得到。

非 BIG-5 日文就是日本人在用的,也是日文網站採用的 JIS 編碼。
用 XP 內建的 IME 輸入法就可以打了,像是這樣:

ハロー!プロジェクト

實際上它是以這樣的方式儲存在竹貓的資料庫中:

&#12495;&#12525;&#12540;!&#12503;&#12525;&#12472;&#12455;&#12463;&#12488;



所以我才想問,有沒有辦法讓外掛在文字檔產生之前先將它轉碼為原來的日文顯示出來?
(這樣一來也許外掛產生出來的文件就會是 Unicode 編碼而非繁體中文編碼了。)

發表於 : 2005-01-29 11:10
deliabest
e夢~能不能幫我弄個副檔名為afm的unicode字形檔(無敵google也倒了),因為我把這個外掛改成線上看pdf了....可是卻不能顯示中文@@"

參考:
http://deliabest.no-ip.com/phpBB2/viewtopic.php?t=515

發表於 : 2005-01-29 13:15
ETERNAL
你可以試試看我這個方法行不行

這是我在jsp上的寫法
檔案在下載前

代碼: 選擇全部

response.setContentType("application/octet-stream;charset=MS950");
response.setHeader("Content-disposition","attachment; filename=\"檔名.xls\"");
告訴瀏覽器,我的編碼是MS950

同理用在php上應該可行

代碼: 選擇全部

header("Content-type: application/octet-stream; charset=euc-jp");
header('Content-Disposition: attachment; filename="檔名.xls"');
但是我怕你在資料庫中的文字已經變成其他編碼,而非原來的日文字

萬一是這種情形\r
要把檔名存進DB時,要用UTF-8格式
取出檔名時也要用UTF-8

代碼: 選擇全部

header("Content-type: application/octet-stream; charset=UTF-8");

發表於 : 2005-01-29 20:32
Mac
有兩個程式可以跟 PHP 一起使用:
http://tw2.php.net/manual/en/ref.recode.php
http://tw2.php.net/manual/en/ref.iconv.php

但是,要主機有安裝才可以

~Mac

發表於 : 2005-01-29 23:07
deliabest
歐耶~終於搞定多國語系的 pdf 了,有空的話可以來幫我測試唷。

發表於 : 2005-01-30 07:26
依夢兒
ETERNAL 寫:但是我怕你在資料庫中的文字已經變成其他編碼,而非原來的日文字

萬一是這種情形\r
要把檔名存進DB時,要用UTF-8格式
取出檔名時也要用UTF-8

代碼: 選擇全部

header("Content-type: application/octet-stream; charset=UTF-8");
跟我之前想的差不多....要解決多國語言問題還是得從 UTF-8 化下手。=.=

問題是我論壇資料庫格式是 big5 ,目前並沒有打算 UTF-8 化。
發表文章時打的日文字發送出去後儲存在資料庫中是以 &#12345; 這樣的 Unicode 參照碼型態儲存。
所以下載的文字檔是 big5 格式,當中的日文字一樣長得就像 &#12345; 這樣。

所以我才想問,有沒有辦法讓外掛在生成文字檔並且讓網友下載之前,先檢查一下內容是否含有 Unicode 參照碼?
如果有的話,例如 &#12495;&#12525;&#12540; 這三個日文字就自動把它轉為原來的「ハロー」,然後將該文件儲存為 UTF-8 格式。
反正現在 XP 很普及了, UTF-8 的文字檔用記事本就可以開啟閱讀了。



至於 Mac 兄提供的網址,內容我看不懂....^^"

發表於 : 2005-01-30 07:38
天霜
.txt 的方式,我試過很多次都無法多國化
所以當時我就想到用另一種方式多國化
就是將 .txt 改為 .html,然後再用 phpBB 多國語言修正的程式碼來依樣畫葫蘆

就可成功多國化... 唉... 不過同時文章中的斷行就會失效
完全連在一起..(嘆)...

發表於 : 2005-01-30 11:10
Mac
依夢兒 寫:至於 Mac 兄提供的網址,內容我看不懂....^^"
先問問看主機有沒有安裝 recode 或 iconv 吧\r
這兩個都可以用 PHP 把文字編碼做轉換

以 recode 為例

代碼: 選擇全部

<?php
$input = fopen('input.txt', 'r');
$output = fopen('output.txt', 'w');
recode_file("us..flat", $input, $output);
?> 

代碼: 選擇全部

<?php
echo recode_string("us..flat", "The following character has a diacritical mark: &aacute;");
?> 
$str = recode_string("html..utf-8", "&#26085;&#26412;&#35486;"); // Unicode for "Japanese"
以 iconv 為例

代碼: 選擇全部

$str = iconv("utf-8", "iso-2022-jp", $mystring);
~Mac

發表於 : 2005-01-30 12:04
deliabest
那如果一篇文章裡面同時有多國語言要怎麼判斷呢?