1 頁 (共 1 頁)

[問題]顯示程式代碼亂碼

發表於 : 2006-02-07 14:59
~木林森~
--------------------------------------------------------------------------------------------------------------------------
●架設主機作業系統:Windows Xp
●快速架站程式:Appserv 2.4.1
●您的上網方式:ADSL
●您的 phpBB2 版本:phpBB 2.0.19。
●錯誤代碼:[code]館 設 加 認[/code]
●錯誤狀態:"館 設 加 認"四字使用顯示程式代碼語法會變成"?#93; ?#93; ?#91; ?#123;"
--------------------------------------------------------------------------------------------------------------------------

發表於 : 2006-02-08 17:32
~木林森~
有沒有人可以幫忙一下...OTZ...

...

發表於 : 2006-02-09 05:20
jwxie
哦哦, 你是說 code?
那是很正常的

因為有些中文字是不能反應出來的
像竹貓的big-5板本就是這樣子

因為你

code之後

代碼: 選擇全部

?#93;為你
會變成你所說的問題
暫時不知道utf-8能不能呢@@

發表於 : 2006-02-09 11:10
問題狂
經剛剛測試過,UTF-8後的phpBB2是沒有亂碼問題的

....

發表於 : 2006-02-09 11:16
jwxie
嗯....
我是想他的板本應該是在竹貓裡下載的

這個蠻有趣....啥事會令utf-8支援不了code@@

ps:謝謝狂大^^

發表於 : 2006-02-09 14:54
Arisa520
請做『多國語言修正』~
之後因該就不會有問題了~
http://phpbb-tw.net/phpbb/viewtopic.php?t=18271

Re: [問題]顯示程式代碼亂碼

發表於 : 2006-02-09 15:59
心靈捕手
~木林森~ 寫:--------------------------------------------------------------------------------------------------------------------------
●架設主機作業系統:Windows Xp
●快速架站程式:Appserv 2.4.1
●您的上網方式:ADSL
●您的 phpBB2 版本:phpBB 2.0.19。
●錯誤代碼:

代碼: 選擇全部

?#93; ?#93; ?#91; ?#123;

●錯誤狀態:"館 設 加 認"四字使用顯示程式代碼語法會變成"?#93; ?#93; ?#91; ?#123;"
--------------------------------------------------------------------------------------------------------------------------
如果您的論壇語系使用 big-5 編碼的話,
那麼必須做 '多國語言' 亂碼修正或 '許功蓋' 衝碼修正;
// [教學] phpBB 2.0.15 多國語言 & 其他問題修正
http://phpbb-tw.net/phpbb/viewtopic.php?t=35623
// 修正_許功蓋
http://phpbb-tw.net/phpbb/viewtopic.php?t=37061

如果您的論壇語系是 utf-8 編碼的話,
那麼自然不會有上述的困擾.

發表於 : 2006-02-09 16:42
~木林森~
感謝各位大大抽空回覆... :-)

發表於 : 2006-02-09 18:48
~倉木麻衣~
對於決定採用big5編碼的全新論壇而言
個人會建議參考這篇文章做許功蓋衝碼字的修正
http://chensh.loxa.edu.tw/php/X_1.php

目前個人只先在submit_post()裡實作這項改變
修改的變數是參考心靈捕手的這篇文章
#
#--------[ OPEN ]----------------
#
includes/functions.php

#
#--------[ FIND ]----------------
#

代碼: 選擇全部

?>
#
#--------[ BEFORE, ADD ]----------------
#

代碼: 選擇全部

function Fix_Backslash($org_str) {
	//if ( mysql_client_encoding() != "big5" ) return mysql_client_encoding();

	$tmp_length = strlen($org_str);

	for ( $tmp_i=0; $tmp_i<$tmp_length; $tmp_i++ ) {
		$ascii_str_a = substr($org_str, $tmp_i , 1);
		$ascii_str_b = substr($org_str, $tmp_i+1, 1);

		$ascii_value_a = ord($ascii_str_a);
		$ascii_value_b = ord($ascii_str_b);

		if ( $ascii_value_a > 128 ) {
			if ( $ascii_value_b == 92 ) {
				$org_str = substr($org_str, 0, $tmp_i+2) . substr($org_str,$tmp_i+3);
				$tmp_length = strlen($org_str);
			}
			$tmp_i++;
		}
	}

	$tmp_length = strlen($org_str);
	if ( substr($org_str, ($tmp_length-1), 1) == "\\\" ) $org_str .= chr(32);

	$org_str = str_replace("\\\0", "\ 0", $org_str);
	return $org_str;
}
#
#--------[ OPEN ]----------------
#
includes/functions_post.php

#
#--------[ FIND ]----------------
#

代碼: 選擇全部

	include($phpbb_root_path . 'includes/functions_search.'.$phpEx);

	$current_time = time();
#
#--------[ BEFORE, ADD ]----------------
#

代碼: 選擇全部

//--修正許 功 蓋 問題?#125;始
$post_subject = Fix_Backslash($post_subject);
$post_message = Fix_Backslash($post_message);
$poll_title = Fix_Backslash($poll_title);
$option_text = Fix_Backslash($option_text);
//--修正許 功 蓋 問題結束
#
#--------[ SAVE/CLOSE ALL FILES ]----------------
#
# EoM

根據測試, 若是採用心靈手捕的方式在資料最後頭加上空白字元, 則資料匯出時會得到如下的內容

代碼: 選擇全部

'許功\\\\蓋 '
如果是採用上述的修正, 那麼就會得到這樣的內容

代碼: 選擇全部

'許功蓋'
接著再來測試當許功蓋被引言時的狀況, 此時匯出的資料為\r
(註:在我自己的機器上測試時, 此篇的post_id=60)

代碼: 選擇全部

'[color=black][[/color]quote:9c1d10bc3d="Anonymous"]許功\\\\\\\\蓋 [/quote:9c1d10bc3d] '
很明顯的, 功字後頭的斜線會愈來愈多
如果是採用上述的修正, 那麼就會得到這樣的內容

代碼: 選擇全部

'[color=black][[/color]quote:9c1d10bc3d="Anonymous"]許功蓋 [/quote:9c1d10bc3d] '
相信經過比較後, 應該可以很清楚的看出這二種修正法的差異\r
而且採用上述方式的話, 就算日後要轉換成utf8碼時, 也不用擔心那些惱人的斜線問題了

ps.
以上測試環境
PHP 4.4.2
MySQL 4.1.16 characterset採big5
php.ini設定
magic_quotes_gpc = On
magic_quotes_sybase = Off

發表於 : 2006-02-09 19:53
心靈捕手
To ~倉木麻衣~:

我的方法, 確實存在有您所說的缺失, 感謝您的指正! :oops:

ps.
因無法合併, 故轉貼您的文章.

發表於 : 2006-02-10 00:07
~倉木麻衣~
呃, 現在就收到教學文件庫還太早了點@@
因為那一個部份只有針對發表文章時做修正而已\r
其它像是註冊、修改會員資料、私人訊息、系統管理員於後台修改會員資料等部份的修改方式都還沒測試
而且個人覺得對於一般的使用者來說, 要他們自行去尋找尚需修改的程式部份並不容易
或許等測到一個段落後再收進去會比較好 :)

發表於 : 2006-02-10 08:54
心靈捕手
~倉木麻衣~ 寫:呃, 現在就收到教學文件庫還太早了點@@
因為那一個部份只有針對發表文章時做修正而已\r
其它像是註冊、修改會員資料、私人訊息、系統管理員於後台修改會員資料等部份的修改方式都還沒測試
而且個人覺得對於一般的使用者來說, 要他們自行去尋找尚需修改的程式部份並不容易
或許等測到一個段落後再收進去會比較好 :)
應該不會太早! ;-)

因為我之前的修改方法, 也只是針對發表文章這部份而已,
後頭有提到修改個人資料 '興趣' 只是方法的延伸.

如果您所提到的相關部分有測試, 修正過的話,
那麼只要日後再加以補充, 更新即可.


畢竟, '教學文件庫' 並非是一成不變的吧!