phpbb2 를 UTF-8 인코딩으로 사용하기 ¶
- phpbb2 의 한국어 번역은 모두 euc-kr 을 기준으로 되어 있다. 이를 utf-8 로 쓰는 방법을 알아본다. 편의상 root 로 작업하였고, 우분투 대퍼의 phpbb2 패키지를 설치한 환경 하에서 수행하였다. php.ini 에 default_encoding 은 설정하지 않고 사용하였다.
- phpbb2 의 language(우분투의 패키지 기본 경로:/usr/share/phpbb2/site/language) 디렉토리에 다음과 같은 스크립트를 작성한 후 실행한다.
#!/bin/sh
for i in $( find ./lang_korean ); do
if [ -f $i ]
then
iconv -f euc-kr -t utf-8 -o $i.bak $i
mv -f $i.bak $i
fi
done
for i in $( find ./lang_korean ); do
if [ -f $i ]
then
sed "s/euc-kr/utf-8/g" < $i > $i.new
mv -f $i.new $i
fi
done
- phpbb2 의 site/includes 디렉토리 안에 있는 emailer.php 를 열어서 Send 함수에 헤더 만드는 부분 뒤에 Subject 를 인코딩해서 넣어준다.
// Build header
$this->extra_headers = (($this->reply_to != '') ? "Reply-to: $this->reply_to\n" : '') . (($this->from != '') ? "From: $this->from\n" : "From: " . $board_config['board_email'] . "\n") . "Return-Path: " . $board_config['board_email'] . "\nMessage-ID: <" . md5(uniqid(time())) . "@" . $board_config['server_name'] . ">\nMIME-Version: 1.0\nContent-type: text/plain; charset=" . $this->encoding . "\nContent-transfer-encoding: 8bit\nDate: " . date('r', time()) . "\nX-Priority: 3\nX-MSMail-Priority: Normal\nX-Mailer: PHP\nX-MimeOLE: Produced By phpBB2\n" . $this->extra_headers . (($cc != '') ? "Cc: $cc\n" : '') . (($bcc != '') ? "Bcc: $bcc\n" : '');
$this->subject = $this->encode($this->subject); // <-- 여기 추가
// Send message ... removed $this->encode() from subject for time being
if ( $this->use_smtp )
{
|
|