워드프레스 트랙백핑 인코딩 문제 해결

March 7th, 2005 by 바람

Wordpress를 사용하다보면 UTF-8과 EUC-KR로 인코딩된 블로그간에 트랙백을 받거나 보낼때 글씨가 깨지게 된다. 이 hack은 다르게 인코딩된 블로그 사이의 트랙백이 깨지지 않게 하기 위한 것이다. Wordpress 1.5 버전을 기준으로 작성되었다.

2.0 버전

새로 포스트를 작성하였습니다
http://www.windlike.net/blog/236/
2005.12.27 15:57

1.5.2 버전(UTF-8 전용) TE

unfusion님이 SE버전에서 트랙백이 깨지는 현상에 대해 보고해 주셨습니다. 여러가지 테스트 결과 트랙백 hack의 문제가 아닌 워드프레스 자체의 결함으로 밝혀졌습니다. 워드프레스에서 트랙백을 보낼때 substr이란 함수로 포스트의 내용중에서 253바이트를 자르고 …을 더해서 보내게 됩니다. 1바이트의 문자일때는 상관이 없는데 UTF-8같은 멀티바이트의 문자에선 글자 중간을 자르게 되는 경우도 발생합니다. 그래서 마지막 문자는 깨진 상태로 보내지는데 트랙백을 받는 쪽에서는 그냥 마지막 한글자만 ?로 나오게 될 뿐입니다. 그렇지만 워드프레스는 mb_convert_encoding이란 함수를 통해 자체적으로 트랙백의 인코딩을 변환합니다. 마지막 깨진 문자때문에 워드프레스는 이 트랙백을 UTF-8이 아닌것으로 인식하고 UTF-8로 재변환을 하게 됩니다. 그래서 결과적으로 트랙백이 깨지게 됩니다.

이 문제를 해결하기 위해 여러가지 방안을 생각했습니다. 기왕이면 워드프레스를 가장 조금 고치고 원래의 코드를 살릴 수 있는 방안. 그리고 버그보고를 통해 정식으로 패치될 수 있는 방안. 다른 블로그툴에서 보낼때 깨져서 들어오는 경우에 대비하기 위해선 받는 쪽에서 수정하는게 좋습니다. 하지만 근본적으로 문제를 해결하는 방법이 아닌데다가 기존 소스의 깔끔함을 해치는 방법이라 보내는 쪽에서 해결하는 방법을 택했습니다. 보내는 쪽을 고치는 방법의 또하나의 장점은 만약 다음 버전에서 이 버그가 수정이 되지 않더라도 이 hack을 쓰지 않은 블로그에 보낼때도 깨지지 않는다는 점입니다.
이 hack은 mbstring 모듈을 설치한 블로그에서만 작동됩니다. 만약 설치가 되지 않았다면 hack을 하지 않은 상태와 같이 작동합니다. mbstring 모듈이 설치가 안되었을 경우 부득이한 경우가 아니라면 호스팅업체에 설치 요청을 할 것을 권장합니다. 워드프레스의 자체의 트랙백 변환은 mbstring에서만 작동하고 제가 만든 트랙백 변환은 iconv에서도 작동하지만 mbstring에서 보다 안정적으로 작동합니다.

만약 mb_strcut 함수를 사용할 수 있는 경우 이 함수를 이용하여 글자를 253바이트 이내에서 자른다. mb_strcut과 substr의 차이점은 mb_strcut은 글자를 인코딩이 깨지지 않게 잘라준다.

/wp-includes/functions.php를 열어 do_trackback함수 내의

$excerpt = substr($excerpt, 0, 252) . '...';

를 아래와 같이 바꾼다

if ( function_exists('mb_strcut') )
$excerpt = mb_strcut($excerpt, 0, 252, get_settings('blog_charset')) . '...';
else $excerpt = substr($excerpt, 0, 252) . '...';

새로 포스트를 열어서 쓰려다 트랙백 변환에 관련된 내용이라 이 포스트에 추가합니다.
1.5.2 SE버전에 위에 있는 새로운 hack을 추가한 1.5.2 TE버전 : 다운로드
2005.9.2 05:16

1.5.2 버전(UTF-8 전용) SE

H.Moon님이 코멘트로 트랙백 hack이 ecto에서 문제를 일으킨다고 알려주셨습니다. 제가 default parameter에 대한 착각을 해서 생긴 문제입니다. 선언된 함수의 parameter보다 호출될 때의 parameter가 적을때 자동으로 부족한 parameter에 null값이 들어간다고 착각을 했습니다. 그래서 function overloading을 하지 않아도 hack을 한 후에도 기존의 함수와 새로 수정한 함수를 모두 쓸수 있다고 생각했는데 default parameter를 사용하려면 선언할때 미리 값을 주어야 합니다. 수정된 부분은 do_trackbakcs함수와 trackback함수의 인코딩관련 parameter에 디폴트로 null값을 주었습니다. 즉 다른 프로그램 또는 워드프레스 내에서 기존의 함수를 그대로 사용하게 될 경우에도 선언된 것보다 호출할 때의 parameter부족때문에 에러를 내지 않습니다. 아래 버전에서 다른 문제점은 보고되지 않았으므로 보통의 경우 굳이 이 버전으로 바꾸실 필요는 없습니다. 하지만 ecto같은 블로깅툴이나 다른 프로그램에 연동해 사용할 경우 필수이며 혹시모를 문제에 대비해 이 버전으로 바꾸실 것을 권장합니다.
다운로드
2005.8.29 03:25

1.5.2 버전(UTF-8 전용)

UNFGroup에서의 트랙백을 보니 워드프레스 1.5.2 버젼이 나왔더군요. 직접 비교해보니 트랙백 내용과 같이 1.5.1.3 버전에서는 post.php만 바뀌었습니다. 놀다보니 방학은 끝나가고.. 플러그인은 아직 손도 안 댔는데..
다운로드
2005.8.15 15:51

1.5.1.3 버전(UTF-8 전용)

심심하다 싶으면 새버전이 나오는 군요.. 이제 방학도 했으니 아예 플러그인으로 만들어봐야 겠습니다. 일단은 좀 놀다가..
다운로드
2005.7.5 14:47

1.5.1.2 버전(UTF-8 전용)

Wordpress 1.5.1.1 버전과 동일합니다. 1.5.1.1 버전용을 받아 사용하세요.
Security Update의 내용만 보고 트랙백 패치파일엔 변화가 없겠구나 했는데 지윤님의 트랙백을 보고 에디터로 직접 비교해보니 /wp-includes/functions.php에 한줄이 추가되었습니다.
다운로드
2005.5.29 21:36

1.5.1.1 버전(UTF-8 전용)

Wordpress 1.5.1.1 버전용으로 mbstring과 iconv 통합입니다. UTF-8 인코딩 전용으로 EUC-KR용은 요청이 있으면 만들겠습니다.
다운로드
2005.5.22 01:58

1.5.1 버전(mbstring사용 UTF-8 전용)

Wordpress 1.5.1 버전이 나왔습니다. 이 패치파일은 1.5.1 버전 용으로 UTF-8로 된 블로그에서 mbstring을 사용하도록 만들었습니다. iconv용과 EUC-KR용은 요청이 있으면 만들겠습니다. 받는 트랙백 부분은 sanulim님이 달아주신 코멘트를 이용하여 만들었으며 보내는 트랙백은 1.5 버전과 동일합니다.
다운로드
2005.5.19 20:00

도움주신분들

이 포스트가 알려지도록 도움 주신 아거님과 테스트에 도움주신 입명이님, H.Moon님, BluedSnow님께 감사드립니다
2005. 4. 6 00:41

통합패치

아래에 있는 4개의 다른 패치적용 파일을 하나로 합한 파일이다. UTF-8과 EUC-KR에 상관없이 작동한다. mbstring이 있으면 mbstring을 사용하고 없을경우 iconv를 사용한다. 만약 둘 다 없는 경우 체크박스가 나오지 않는다. 그러므로 체크박스가 나오지 않는다면 설치를 잘못 하였거나 호스팅 업체에서 지원을 하지 않는 경우이다. 일반적인 경우 통합버젼 사용을 권장한다.

압축을 푼 후 워드프레스가 설치된 폴더에 복사한다. (예 : /blog)
6개의 파일이 덮어쓰기되면 파일 복사가 제대로 된 것임.
통합패치 : 다운

주의사항

적용대상 :
- PHP 4.0.6 이상
- mbstring 모듈이나 iconv 모듈 둘 중 하나가 설치되어 있어야 함

확인방법 :
- 직접 호스팅 업체에 문의
- 다음 코드를 에디터를 이용하여 test.php로 저장한 후 브라우져에서 실행한다(미리 작성된 파일 : 다운)

<?php
echo 'PHP version: ' . phpversion() . '<br />';
if ( function_exists('mb_convert_encoding') ) echo 'mbstring OK!<br />';
else echo 'mbstring fail..<br />';
if ( function_exists('iconv') ) echo 'iconv OK!<br />';
else echo 'iconv fail..<br />';
?>

mbstring OK! 가 나오면 mbstring 모듈을 이용할 수 있다(둘 다 OK일 경우 이방법을 권장)
iconv OK! 가 나오면 iconv 모듈을 이용할 수 있다(mbstring fail 일 경우 이 방법으로 한다)
둘다 fail이면 호스팅 업체에서 둘 중 하나를 설치해 줄때까지 불가능하다

라이센스

Wordpress가 GPL이기 때문에 이 hack 역시 GPL을 따른다. 수정 및 재배포 모두 가능함.

사용방법

받는 트랙백은 자동으로 변환된다.
보내는 트랙백은 트랙백 보내는 주소 오른쪽에 생긴 체크박스를 수동으로 체크함으로서 변환한다. 트랙백 받는 블로그가 내 블로그와 다른 인코딩을 사용할 경우 체크한다. 같은 인코딩인데 체크할 경우 오히려 트랙백이 깨지게 되므로 인코딩이 같을 경우엔 체크하지 않고 트랙백을 보낸다.
상대의 인코딩을 알아내는 방법은 브라우져의 보기 - 인코딩 메뉴를 보면 알 수 있다.

패치적용 파일

이 파일은 아래의 내용을 직접 수정하기 번거로운 사람을 위한 파일로 아래 적힌 수정 방법을 모두 적용하여 압축한 파일이다.
압축을 푼 후 워드프레스가 설치된 폴더에 복사한다. (예 : /blog)
6개의 파일이 덮어쓰기되면 파일 복사가 제대로 된 것임.
Wordpress 1.5 UTF-8 용 수정파일(mbstring 모듈 사용) : 다운
Wordpress 1.5 EUC-KR 용 수정파일(mbstring 모듈 사용) : 다운
Wordpress 1.5 UTF-8 용 수정파일(iconv 모듈 사용) : 다운
Wordpress 1.5 EUC-KR 용 수정파일(iconv 모듈 사용) : 다운

받는 트랙백핑 문제 해결(mbstring)

mb_detect_encoding을 이용하여 들어오는 트랙백핑의 인코딩을 검사한후 blog_charset에 설정된 내 블로그의 인코딩으로 변환해 준다.

/wp-trackback.php를 열어

$title = mb_convert_encoding($title, get_settings('blog_charset'), $charset);
$excerpt = mb_convert_encoding($excerpt, get_settings('blog_charset'), $charset);
$blog_name = mb_convert_encoding($blog_name, get_settings('blog_charset'), $charset);

를 아래와 같이 바꾼다($charset이 수정되는 것임)

$title = mb_convert_encoding($title, get_settings('blog_charset'), mb_detect_encoding($title, 'UTF-8, EUC-KR') );
$excerpt = mb_convert_encoding($excerpt, get_settings('blog_charset'), mb_detect_encoding($excerpt, 'UTF-8, EUC-KR') );
$blog_name = mb_convert_encoding($blog_name, get_settings('blog_charset'), mb_detect_encoding($blog_name, 'UTF-8, EUC-KR') );

받는 트랙백핑 문제 해결(iconv)

정규식을 이용한 is_utf8 함수를 만들어 UTF-8인지 확인한 후 iconv 함수로 인코딩을 변환한다.

/wp-trackback.php를 열어 // trackback is done by a POST 위에 아래의 코드를 추가한다. 이는 이해를 돕기 위치이므로 굳이 이곳이 아니라도 적당한 곳에 추가하면 된다.

// Returns true if $string is valid UTF-8 and false otherwise.
function is_utf8($string) {
return preg_match('%^(?:
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*$%xs’, $string);
} // function is_utf8

같은 파일(/wp-trackback.php)의

if ( function_exists('mb_convert_encoding') ) {
$title = mb_convert_encoding($title, get_settings('blog_charset'), $charset);
$excerpt = mb_convert_encoding($excerpt, get_settings('blog_charset'), $charset);
$blog_name = mb_convert_encoding($blog_name, get_settings('blog_charset'), $charset);
}

를 아래와 같이 바꾼다(UTF-8의 경우)

if ( !is_utf8($title) ) $title = iconv('EUC-KR', get_settings('blog_charset'), $title);
if ( !is_utf8($excerpt) ) $excerpt = iconv('EUC-KR', get_settings('blog_charset'), $excerpt);
if ( !is_utf8($blog_name) ) $blog_name = iconv('EUC-KR', get_settings('blog_charset'), $blog_name);

EUC-KR의 경우는 아래와 같이 바꾼다 (if문 조건에서 !이 빠지고 ‘EUC-KR’이 ‘UTF-8′로 바뀜)

if ( is_utf8($title) ) $title = iconv('UTF-8', get_settings('blog_charset'), $title);
if ( is_utf8($excerpt) ) $excerpt = iconv('UTF-8', get_settings('blog_charset'), $excerpt);
if ( is_utf8($blog_name) ) $blog_name = iconv('UTF-8', get_settings('blog_charset'), $blog_name);

보내는 트랙백핑 문제 해결

1. 먼저 EUC-KR로 트랙백핑을 보낼지를 선택하는 체크박스를 만든다. 체크박스를 체크하면 char_encoding에 value값인 “EUC-KR”이 전달된다. 일반폼과 advanced폼 모두 바꿔주기 위해 두개의 파일을 수정한다. (EUC-KR 사용자 : 이 단계에서 “EUC-KR”을 “UTF-8″로 바꿔서 수정한다. 나머지 부분은 UTF-8 사용자와 같이 수정한다.)

/wp-admin/edit-form.php를 열어

<input type="text" name="trackback_url" style="width: 360px" id="trackback" tabindex="7" /></p>

를 아래와 같이 바꾼다 (첫째줄의 </p>이 추가되는 줄로 옮겨가는 것 주의)

<input type="text" name="trackback_url" style="width: 360px" id="trackback" tabindex="7" />
<label for="char_enc"><input type="checkbox" name="char_encoding" id="char_enc" value="EUC-KR" /> EUC-KR</label></p>

/wp-admin/edit-form-advanced.php를 열어

<td>< ?php echo $form_trackback; ?> <br />

를 아래와 같이 바꾼다

<td>< ?php echo $form_trackback; ?> <label for="char_enc"><input type="checkbox" name="char_encoding" id="char_enc" value="EUC-KR" /> EUC-KR</label><br />

2. do_trackbakcs 함수에 폼으로부터 넘겨받은 $char_encoding값을 인수로 전달한다.

/wp-admin/post.php를 열어 do_trackbacks를 찾은 후

do_trackbacks($post_ID);

를 아래와 같이 바꾼다(2곳을 수정해야 함)

do_trackbacks($post_ID, $_POST['char_encoding']);

3. do_trackbacks 함수가 선언된 곳을 찾아서 매개변수 $char_enc를 추가하고 이 값을 trackback 함수의 인수로 넘긴다.

/wp-includes/functions-post.php를 열어

function do_trackbacks($post_id) {

를 아래와 같이 바꾼다

function do_trackbacks($post_id, $char_enc) {

또 몇줄 밑의

trackback($tb_ping, $post_title, $excerpt, $post_id);

를 아래와 같이 바꾼다

trackback($tb_ping, $post_title, $excerpt, $post_id, $char_enc);

4. trackback함수가 선언된 곳을 찾아서 매개변수 $encoding을 추가한다. $encoding에 값이 들어가 있으면 mb_convert_encoding을 이용하여 트랙백핑 보낼 제목, 요약, 블로그이름을 $encoding의 값으로(체크박스의 value값, 여기서는 EUC-KR) 인코딩을 변환한다. 체크박스가 선택되지 않아 $encoding에 값이 없으면 인코딩을 변환하지 않고(여기서는 utf-8) 트래픽핑을 보낸다.

/wp-includes/functions.php를 열어

function trackback($trackback_url, $title, $excerpt, $ID) {
global $wpdb;
$title = urlencode($title);
$excerpt = urlencode($excerpt);
$blog_name = urlencode(get_settings('blogname'));

mbstring 모듈을 사용할 경우에는 아래와 같이 바꾸고

function trackback($trackback_url, $title, $excerpt, $ID, $encoding) {
global $wpdb;
$blog_name = get_settings('blogname');
if($encoding) {
$title = mb_convert_encoding($title, $encoding, get_settings('blog_charset'));
$excerpt = mb_convert_encoding($excerpt, $encoding, get_settings('blog_charset'));
$blog_name = mb_convert_encoding($blog_name, $encoding, get_settings('blog_charset'));
}
$title = urlencode($title);
$excerpt = urlencode($excerpt);
$blog_name = urlencode($blog_name);

iconv 모듈을 사용할 경우에는 아래와 같이 바꾼다

function trackback($trackback_url, $title, $excerpt, $ID, $encoding) {
global $wpdb;
$blog_name = get_settings('blogname');
if($encoding) {
$title = iconv(get_settings('blog_charset'), $encoding, $title);
$excerpt = iconv(get_settings('blog_charset'), $encoding, $excerpt);
$blog_name = iconv(get_settings('blog_charset'), $encoding, $blog_name);
}
$title = urlencode($title);
$excerpt = urlencode($excerpt);
$blog_name = urlencode($blog_name);

87 Responses to “워드프레스 트랙백핑 인코딩 문제 해결”

  1. GatorLog: A Blogger's Monologue Says:

    워드프레스 트랙백 인코딩 문제 해결 (바람님)

    바람님께서 “워드프레스 트랙백핑 인코딩 문제 해결”을 해주셨습니다. 무버블타입(MT)에서는 Gratia님이 이를 해결해주셨는데, 저는 복잡한 것을 제대로 못 따라하는 경향이 있어 지금도 MT에…

  2. 입명이 Says:

    바람님 저는 EUC-KR로 변경해서 워드프레스를 사용중인데요.
    반대로 하는법도 올려주시면 안될까요?
    부탁드립니다. (__)..

  3. suksim Says:

    감사히 쓰겠습니다. 쩔쩔 매면서 받는 트랙백핑 수정하고 보내는 트랙백을 쭉 읽어보니 패치파일까지 올려놓으셨더군요.워드프레스 유저들에게 너무 반가운 소식이 아닐까 싶네요.

  4. thinkini Says:

    아거님:
    블로그계의 명사이신 아거님의 트랙백을 받다니 영광입니다^^

    입명이님:
    EUC-KR로 인코딩된 워드프레스가 EUC-KR로 트랙백을 보내는지 UTF-8로 보내는지 확인을 위해서 실험을 좀 해봐야 겠습니다. 제가 직접 EUC-KR로 워드프레스를 깔아서 실험을 해봐야 하지만 그래도 살짝 귀찮으니^^ 일단 입명이님이 http://www.windlike.net/tt/rserver.php?mode=tb&sl=14 로 아무거나 트랙백을 한번 보내줘 보시면 감사하겠습니다^^ 그리고 받는 트랙백 수정은 EUC-KR과 UTF-8에 상관없이 작동합니다.

    suksim님:
    워드프레스 유저들을 만난다는 건 저에게도 반갑습니다^^

  5. 입명이 Says:

    아, TV좀 보느라고 이제서야 확인합니다.
    트랙백은 보냈습니다. 잘 갔는지 모르겠네요.

  6. thinkini Says:

    입명이님:
    네 확인결과 EUC-KR로 인코딩된 워드프레스는 트랙백도 EUC-KR로 보내네요. 그렇다면 간단히 해결될 거 같군요. 보내는 트랙백에서 1번 수정 부분의 value=”EUC-KR”을 value=”UTF-8″로 바꿔서 hack을 적용하면 됩니다. 아래쪽에 있는 패치파일을 다운받으셔서 그 부분만 수정해 보세요. 이론상으론 그러면 되는데 만약 안되면 제가 워드프레스를 따로 깔아서 해보겠습니다^^

  7. H.Moon Says:

    으앗, 이런 방법이…
    실은 트랙백 관련해서 그라샤님에게 신세를 지고 있었는데, 늘 미안한 마음 이었습니다.
    이렇게 해결하고 나니, 이거 속 시원하군요.
    아직 받거나 보낸 트랙백이 없어 테스트는 못 해 봤지만, 뭐 잘 되겠죠.

  8. 입명이 Says:

    네, 우선 내일 확인해봐야겠네요.
    정말 감사드립니다. 그리고 hack을 적용한다는 말은 무언가요?
    그냥 수정만 하면 안되나보죠?
    만약 제가 블로그를 다른 계정으로 옮기면 아주 UTF-8로 깔아서 바람님 방법으로 하려구요. 굳이 따로 설치는 안하셔도 되요. 번거롭게 해드리는거 같아 죄송스럽네요.
    좋은 밤 되세요.~

  9. thinkini Says:

    H.Moon님:
    혹시 잘 안되면 A/S 해드리겠습니다. 마데소프트웨어 제품이거든요^^

    입명이님:
    hack을 적용한다는 것은 수정하라는 뜻입니다^^
    ..만 ..로 바꾸라고 표현하면 그냥 그 부분만 바꾸라는 말처럼 들릴까봐 그렇게 말했는데 제 의도는 위의 수정하는 부분을 모두 고치라는 말입니다. “EUC-KR”만 “UTF-8″로 바꿔서 말이죠.
    그리고 번거롭다니요. 제가 직접 테스트 해봐야 하는데 입명이님에게 테스트를 미루는거 같아 오히려 성의없다 생각하실까봐 걱정^^
    안녕히 주무세요~

  10. 입명이 Says:

    감사합니다. ^^
    블로그 주소 옮겼구요.
    utf-8로 적용해버렸습니다. ㅎㅎ
    잘 쓰겠습니다. ^^
    이 아뒤에 블로그 링크시켜놨어요~ 후다닥 =3=3=3

  11. H.Moon Says:

    음, A/S를 해주신다는 말씀에 이렇게 염치 불구하고 다시 글 남깁니다.
    제가 수정중에 무얼 실수 했는지, UTF-8으로는 트랙백이 잘 나가지만, EUC-KR로는 나가질 않습니다.
    즉, 포스트 화면에서 EUC-KR에 체크를 하고 저장을 하게되면 트랙백이 나가질 않고 그냥 남아 있습니다.
    혹시나 하고 UTF-8으로 (체크를 안하고 그냥 저장하는 경우.) 트랙백을 보내봤는데, 이 경우는 트랙백이 잘 나갑니다.
    물론 받는 측에선 다 깨지겠지만 말이죠.
    혹시나 하고 여기에 올라온 파일을 다운받아서 덮어 씌워 봤는데도 같은 현상이군요.
    어떻게 하면 좋을까요? ^^

  12. 입명이 Says:

    옷… 그러고 보니 저도 그렇네요.
    UTF-8은 제대로 트랙백이 가는데, EUC-KR은 가질 않네요.
    흠…

  13. thinkini Says:

    입명이님:
    아 utf-8로 옮기셨군요. 저는 euc-kr로 워드프레스를 하나 깔아서 테스트를 마쳤는데 잘 되네요^^ 사실 홈페이지의 제목이 일본어로 쓰여 있어서 utf-8을 권하려 했었습니다. 혹시라도 일본인과 교류를 하시려면 utf-8이 훨씬 편할테니까요^^

    H.Moon님:
    이런.. 머가 잘못된걸까요..
    확인을 좀 해봐야 겠습니다..

  14. thinkini Says:

    입명이님:
    제가 테스트로 보내봤는데 받는 트래픽 역시 안되는군요..
    PHP 버전 좀 알 수 있을까요?

  15. 입명이 Says:

    네, 4.3.1 이네요.
    다른 정보도 필요하세요?

  16. thinkini Says:

    입명이님:
    호스팅업체 카페24 맞으시죠? Whois로 알아봤더니 H.Moon님과 입명이님 모두 카페24…
    아 그리고 현재 입명이님의 워드프레스에 위의 패치가 적용된 상태인거죠?

    일단 열심히 문제점을 찾아보고는 있습니다..

  17. thinkini Says:

    사실 제가 PHP를 할 줄 모릅니다. C랑 비슷해서 손댔는데 예상치 못했던 문제들이 있네요..
    아무튼 지금까지 열심히 알아본 결과 mb_detect_encoding 함수가 기본설치가 아니더군요.
    mb_convert_encoding 함수가 wordpress 내에 있길래 기본적인 PHP 함수로 알고 참 편하다 라고 생각하는데 PHP 사이트의 레퍼런스를 유심히 읽어본 결과 기본적으로 작동되는 게 아니라고 적혀있습니다.(mbstring is a non-default extension이라는군요)
    제가 사용하는 호스팅업체에선 잘 작동됩니다.
    일단 mbstring이 지원되게 해 달라고 호스팅업체에 요청하는 방법이 가장 손쉬운 방법입니다.
    다른 방법으로는 iconv를 이용해야 할듯 한데..
    지금부터 iconv를 사용해서 하는 방법을 열심히 연구해 보겠습니다^^
    아무튼 심려 끼쳐 드린점 죄송합니다

  18. 입명이 Says:

    아.. 그렇군요.
    저도 PHP는 잘 모르고.. Java나 JSP 쪽인데..
    인코딩 비교할때 해당 함수 돌리길레. 저게 뭐지 했는데..
    기본적으로 제공되는 함수군요?
    제 호스팅이 Cafe24인데… 여기에 말을 해도 되게 해주려나 모르겠네요.
    아무튼 감사드립니다. ^^

  19. H.Moon Says:

    아 그렇군요. 일단 호스팅 업체에 설치해 달라고 얘기는 해 놨습니다만, 언제 쯤 될런지는 모르겠네요.
    만약 mbstring 을 사용할 수 있게 되어서 EUC-KR로 다시 잘 보내지면 그때 결과 말씀 드려볼께요.

  20. thinkini Says:

    일단 iconv를 사용할수 있다면 마지막 4번 수정을

    function trackback($trackback_url, $title, $excerpt, $ID, $encoding) {
    global $wpdb;
    $blog_name = get_settings('blogname');
    if($encoding) {
    $title = iconv(get_settings('blog_charset'), $encoding, $title);
    $excerpt = iconv(get_settings('blog_charset'), $encoding, $excerpt);
    $blog_name = iconv(get_settings('blog_charset'), $encoding, $blog_name);
    }
    $title = urlencode($title);
    $excerpt = urlencode($excerpt);
    $blog_name = urlencode($blog_name);

    로 하셔서 사용하시면 보내는 트랙백은 될 것입니다.
    받는 트랙백 때문에 mb_detect_encoding을 대체할 방법을 찾고 있는데 못 찾겠네요–;

    추가내용 : 이 내용은 이미 모두 패치에 반영되어 있습니다
    2005. 3. 28. 13:22

  21. 입명이 Says:

    정말 감사합니다. ^^
    진짜 옆에 계시면 밥한끼 사드리고 싶네요.~
    잘 쓸께요~
    좋은 하루 보내세요~~

  22. 입명이 Says:

    =ㅁ=; Euc-kr은 안되네요. 흑흑.. ㅠ.ㅠ
    정말 수고하셨는데..;;
    test 헤서 iconv가 되었는데.. 왜 안되지 @.@

  23. 입명이 Says:

    와~ 된다~ 된다 ^^
    정말 감사드립니다.
    바람님 덕분에 좀더 멋지게 블로그 할 수 있게 되어 기분이 좋습니다. ^^
    저에게 트랙백 테스트는 언제든지 환영합니다.~~
    멋진 한주 시작하세요~

  24. thinkini Says:

    잘 된다니 다행이네요^^
    입명이님도 즐거운 한주 되시길..

  25. H.Moon Says:

    움… 저도 아직 EUC-KR이 안되고 있는데, 이유를 모르겠습니다.
    새 패치로 적용 했고, test 에서도 iconv 를 쓰라고 해서 iconv 패치로 고쳤는데, EUC-KR에 체크를 하고 저장을 하면 URI가 그대로 남아있어 트랙백이 보내지질 않네요.
    이게 무슨 조화일라나…

  26. Moon in Melbourne Says:

    Wordpress와 트랙백 문제 현황.

    워드 프레스 1.5가 나온지 얼마간의 시간이 흘렀지만, 각 인코딩 사이의 트랙백 문제라던지, 혹은 이종 툴 간의 트랙백 문제는 아직 해결이 되고 있는 것 같질 않다.
    특히나 유니코드 표준인 U…

  27. H.Moon Says:

    우옷, 성공입니다.
    iconv 버전말고, 통합 버전을 받아서 덮어 씌웠더니 되는군요.
    대체 무슨 조화였는지, 거 참…

  28. BluedSnow Says:

    안그래도 이문제 때문에 고민이였는데 감사히 잘쓰겠습니다. ^^
    잘 동작하네요… UTF-8 mbstring 모듈 사용 설치 하였습니다.

    종종 들르겠습니다. ^^;

  29. thinkini Says:

    H.Moon님께
    성공이라니 다행입니다..^^
    그럼 A/S는 마무리 지었군요

    BluedSnow님께
    혹시라도 안되는 부분 있으면 다시 남겨주세요^^

  30. BluedSnow Says:

    테스트 트랙백 잘 받았습니다.

    왜 제 테터에서는 안 날라 갔을까요? 이상하네요.
    안그래도 누군가에게 테스트 트랙백을 부탁할까 생각 중이였는데, 친히 A/S까지 감동 먹었습니다.

    건강하세요~~~

  31. thinkini Says:

    BluedSnow님께
    며칠 정신이 없어서 답이 늦었네요^^
    아직도 잘 작동하고 있겠죠?
    A/S야 어설픈 실력으로 만든거라 제가 불안해서..^^
    이제 서서히 이 글을 최종 정리하고 다시 블로깅 본연의 글쓰기와
    예전 글들 옮기기를 해야겠네요

    트랙백과 덧글은 당연히 남겨 두셔도 좋죠^^

  32. rosarux Says:

    안녕하세요
    혼자 끙끙 앓다가 이렇게 글을 남깁니다^^;

    올려주신 통합버전을 설치하고(현재 mbstring, iconv 모두 작동중) 테스트를 해 봤는데

    받는 트랙백을 잘 되는데 EUC-KR로 보내는 트랙백은 깨지네요..
    PHP는 문외한인지라… 문제의 원인이 뭔지도 모르겠고-.-;;

    언제 시간 나시면 테스트 부탁드립니다

  33. rosarux Says:

    안녕하세요 남겨주신 댓글 이제서야 확인했습니다….

    근데 알려주신 블로그로는 트랙백이 안나가네요…
    네이버나 다른 쪽은 잘 나가는 것 같은데(깨져서 문제지-.-)

    초면에 대뜸 부탁드리는거 망설였는데 도와주셔서 감사하고요…

    그냥 포기할까 생각중이네요…깨진 트랙백이 궁금하면 와서 보면 되겠지요;;;

  34. rosarux Says:

    결국 다시 설치해 봤으나
    결과는 동일하네요

    그냥 맘 편하게 있어요죠^^;;

    두번이나 테스트 해주시면서 신경써주셔서 감사합니다~

    앞으로도 종종 놀러 오겠습니다

  35. thinkini Says:

    rosarux님께

    흠흠 더 신경써 드리고 싶으나
    숙제와 중간고사의 압박으로..^^

    cafe24는 mbstring은 안되고 iconv만 되는 걸로 알고 있는데..
    일단은 H.Moon님의 예전 증상이랑 비슷한거 같기두 하구..
    아무튼 여유를 찾는데루 꼭 작동되도록 확인해 보겠습니다^^

  36. rosarux Says:

    안녕하세요

    오늘 아무 생각없이 네이버 블로그 쪽으로 트랙백을 보내봤는데…

    웬걸 제대로 작동하는데요 @.@

    무슨 조화인지 모르겠습니다…그 이후 손댄건 없는데요..ㅎㅎ

  37. thinkini Says:

    rosarux님께

    흠흠 잘 된다니 일단 다행인데..
    cafe24에서 뭔가를 막아놨다가 풀어주는 건지.. 이거참^^
    다른 분들도 안되는듯 하다 되시는 분들이 있네요
    아무튼 혹 다시 안되면 남겨 주세요^^

  38. bookworm Says:

    cafe24에서 시험 해보았습니다. mbstring(), iconv() 모두 지원하지 않고 있네요. 이 문제는 어떻게 해야 할지 고민 중입니다.

    euc-kr을 포기하고 utf-8 로만 운영하기도 뭐하고 뭔가 근본적으로 해결 할 수 있는 방법은 없을까요?

  39. rosarux Says:

    안녕하세요 책벌레님…저도 같은 경우 였는데 카페24 측에 요청을 하니 2시간 이내에 모듈이 설치돼어 있는 다른 서버로 이전을 시켜주더라고요… 생각보다 반응이나 처리속도가 빨라서 놀랐습니다.

    카페24 측에 한번 요청을 해보세요 1:1 게시판? 인가를 이용하면 됩니다.

  40. plampia's happy world Says:

    워드프레스 트랙백핑 인코딩 문제 해결

    Wind-like Blog » Blog Archive » 워드프레스 트랙백핑 인코딩 문제 해결 wind-like blog에 있는 패치를 이용해 트래백핑 인코딩 문제 해결!

    EUC-KR로 보내기, EUC-KR에서 받기 다 테스트 했는데 문제 없다….

  41. mylook Says:

    ’save and continue editing’ 하고 그냥 ’save’ 하고 다릅니다

    ’save and continue editing’
    저장하고 트랙백 주소가 올라와있다면 트랙백(핑백)을 보내고 저장 합니다

    ’save’
    그냥 단순 저장 입니다

    트랙백 test 를 하실려면 ’save’ 를 선택 하시면 아무런 동작도 하지않으니 주의하세요 :)

  42. thinkini Says:

    bookworm님께
    지금은 잘 되는지 모르겠네요^^ rosarux님이 답글을 달아 주셔서 제가 따로 안달았었는데^^ 블로그 가보니 WOW 좋아하시나 보네요.. 전 WOW는 안하지만 Warcraft는 좋아해요^^

    rosarux님께
    답글 달아주셔서 감사합니다^^ 제가 시험기간이라 신경 못쓰고 있었는데 rosarux님께서 대신 해주셨네요^^

    mylook님께
    사람들이 실수할수 있는 좋은 정보 지적해 주셔서 감사합니다^^ 블로그 잠깐 들여다보니 안녕, 프란체스카를 보시는듯.. 저도 즐기고 있죠 ㅋㅋ

  43. H.Moon Says:

    아.. 당췌 이게 무슨 조화인지, 얼마전부터 트랙백이 전혀 나가질 않고 있어요.
    왜 이러지.

  44. H.Moon Says:

    역시나, UTF-8으로 하면 잘 나가는데, EUC-KR에 체크만 하면 전혀 안 나가네요. 에효.

  45. thinkini Says:

    mylook님께
    음 리플달아주신 내용 방금 확인해 봤는데 제 경우엔 두개 다 트랙백이 나가더군요
    save와 save and continue editing 모두 나갑니다
    다시 확인 부탁드립니다^^
    draft상태에선 둘다 안나가고 publish상태에선 둘다 나갔습니다

    H.Moon님께
    앗 또다시 문제가.. 제가 코드를 다시 검토해 봤는데 찾질 못하겠습니다
    카페 24에서 무언가 왔다 갔다 하는게 아닐까 하는 생각도 들지만
    일단 포스트의 Already pinged: 에도 아무것도 남아있지 않은지 확인 바랍니다
    그리고 트랙백 테스트가 필요하시면 http://www.windlike.net/tt/rserver.php?mode=tb&sl=14 에 마음대로 테스트 하셔도 됩니다

  46. H.Moon Says:

    휴… 이상합니다.
    어제 TT에 테스트 했을때는 잘 나갔었어요.
    그런데 오늘 또 다시 안되네요.
    already pinged: 에도 주소가 다 남는데, 해당 블로그의 트랙백 란에 가보면 아무것도 없고 말이죠.
    대체 이유가 뭘까요. 흐음…

  47. sanulim Says:

    WP 1.5.1 버전에서는 받는 트랙백핑의경우 wp-trackback.php의

    if ($charset)

    else
    $charset = ‘ASCII, UTF-8, EUC-KR, ISO-8859-1,……’;

    의 부분에서 위와 같이 $charset에 EUC-KR을 추가만 해줘도 잘 작동하는군요.

  48. thinkini Says:

    H.Moon님께
    도움을 못 드려서 죄송합니다..

    sanulim님께
    1.5.1 버전이 나왔군요^^
    시간나는데로 1.5.1 버전도 살펴봐야겠네요
    좋은 정보 감사드립니다^^

  49. pdaclub Says:

    wp 1.5.1로 업데이트하고 다시 통합패치파일을 덮어씌우니, 홈페이지 열떄 아래같이 에러메시지 나온던데요.. 혹 제가 어디 부분을 수정하면 될지 알 수 있을까요?

  50. thinkini Says:

    pdaclub님께
    제가 아직 1.5.1 버젼을 전혀 살펴보지 못하였습니다.
    1.5.1버젼에 패치화일을 덮어씌우는 방법은 작동하지 않을것입니다.
    시간나는데로 1.5.1용도 만들겠습니다.
    일단 숙제부터 하구요^^

  51. pdaclub Says:

    아,, 그렇군요, 관심가져주셔서 감사합니다..

    죄송하지만 제 홈페이지 경로나온 덧글은 삭제좀 부탁드려요..
    첫번쨰 덧글에 적었는데, 잘못나와서리..

  52. thinkini Says:

    pdaclub님께
    제대로 지운거 맞죠?^^
    1.5.1버젼 패치 나오면 연락드리겠습니다~

  53. pdaclub Says:

    감사합니다. 1.5.1 버전에서 잘 사용하겠습니다.

  54. jeolee Says:

    예전에 1.5버전용을 잘 받아 사용했었는데 저는 iconv용을 썼었습니다.
    1.5.1버전으로 iconv용을 좀 부탁드립니다. 그 사이에 보니 1.5.1.1버전도 나왔던데 1.5.1과도 차이가 없는건지 모르겠군요.

    받아만 쓰고 있어 죄송하네요. :)

  55. thinkini Says:

    pdaclub님께
    네^^

    jeolee님께
    1.5.1.1을 받아서 iconv 통합으로 올렸습니다^^
    jeolee님 블로그 가보고 반했습니다
    제가 타이포그라피에 열광하는데 텍스트기반으로 그렇게 멋진 블로그를 만드셔서..
    폰트가 많은 영어가 아닌 한글로 하셔서 더 대단합니다.
    게다가 Firefox 플러그인인 Web Developer를 이용해서 CSS를 Disable시켜봤는데
    정확하게 내용들이 열거되네요..
    이렇게 멋진 블로그가 제 hack을 이용하니 오히려 제가 보람을 느낍니다^^

  56. jeolee Says:

    1.5.1.1용 통합버전, 잘 받았습니다. 감사합니다. thinkini님 덕분에 wordpress를 잘 쓰고 있죠. 이 문제가 이전작업에 가장 큰 문제였거든요.

  57. steampunk Says:

    1.5.1.1 버전 잘 사용하겠습니다. 감사합니다. :)

  58. freshworks design Studio Says:

    워드프레스 1.5.1.2 한글 인코딩 트랙백, 핑백 Hack

    워드프레스 1.5.1.2를 설치하고, Wind-like님의 UTF-8 전용 한글 인코딩 트랙백, 핑백 Hack을 수동으로 고쳐줬습니다.
    이전 버전과 다른점은 wp-include 디렉토리의 funtion.php 파일의 546번째줄에 아래의 …

  59. bookworm Says:

    항시 감사히 잘 쓰고 있습니다. 행복하시길 빌겠습니다.

  60. SHIBATA Says:

    정보 감사합니다.
    1.5.1.3 버전(UTF-8)을 인스톨 했답니다. 헌데 소스를 다운 받은 뒤 바로 서버에 올리면 페치가 되는건지요? 아니면 잘 설명하여 적어주신데로 소스를 변경해서 올려야 하는지요?
    답변 부탁드립니다.

  61. thinkini Says:

    SHIBATA님께
    제가 올린 파일은 고쳐진 파일입니다. 밑에 설명 과정대로 고친 걸 올린 거지요.
    그냥 덮어 씌우시면 됩니다^^

    jeolee님 steampunk님 bookworm님께
    여러분의 성원에 보답하고자^^ 좀만 더놀고 플러그인으로 만드는걸 도전해 볼께요.

  62. 입명이 Says:

    여기에 글 남겨요.~
    잘 지내시죠?
    저도 워드프레스 한동안 방치시켜놓고~
    다시 시작하면서 태터툴즈로 변경했답니다. ㅎ
    태터의 다음 버젼도 기대해보구요.
    태터툴즈도 UTF-8이 적용이 되기를 기대하고 있습니다. :)
    다시 블로그 시작하시는데~ 화이팅입니다. :)

  63. UNFGroup Says:

    TrackBack EUC-KR for WordPress 1.5.2

    thinkini 님의 워드프레스 트랙백핑 인코딩 문제 해결을 통해 1.5.1.3에 적용하고 테스트하려는 순간
    1.5.2가 나왔다는 post를 보고 말았다.
    결국 1.5.2로 다시 setting을 한 후 적용하려니 source가 약간…

  64. space Says:

    혹시 태터툴 컨버터 같은건 없나요..
    옮기려고 생각중인데.. 원래 데이타를 옮길 방법이 없네요..

    이거 코멘트 반드시 메일 작성해줘야 하네여..흠

  65. thinkini Says:

    space님께
    곰님이 만드신걸 한날님이 수정했다고 하는 컨버터가 있습니다
    http://www.hannal.com/blog/index.php?pl=692
    웰컴투프리미어리그.. 아니 워드프레스..

    아 그리고 워드프레스 사용하시면 코멘트에 메일은 기본입니다^^

    입명이님께
    잠수한척있으면서 예전글옮기기 하고있었는데 1.5.2버전등장으로 다시 수면위로 빼꼼 고개를 내밀었습니다.. 7월 1일에서 8월 1일로 다시 9월 1일로 정식 블로그 개장이 미뤄지네요.. 머 에버랜드 야간개장이나 김수미게장같은 특별함은 없겠지만 그래도^^

  66. bookworm Says:

    빠른 패치 감사드립니다.

  67. H.Moon Says:

    항상 빠른 패치에 감사드리고 있습니다.
    그런데, 이건 제가 코딩에 대한 지식이 많이 없어서 어느쪽에 문의할지 몰라서 드리는 질문입니다만…

    533번째 라인에 보면, 인코딩에 대한 변수가 하나 더 추가 되잖아요? Ecto라는 WP용 엔트리 포스팅 툴이 있는데, 이 툴이 포스팅을 할 때면, 이 부분에서 에러를 표시합니다.

    이걸 어떻게 하면 좋을까요?

  68. thinkini Says:

    H.Moon님께
    요즘 쓸데없이 바빠서 답변이 늦었습니다..
    제가 ecto툴이 없어서 확인을 할수가 없네요
    전에 한번 깔았다 지워서 2주사용기간이 지나버려서..
    그래서 어떤식으로 동작하는지는 잘 모르겠습니다

    흠 지금 생각해보니 제가 default parameter에 대한 착각을 한것 같습니다
    저도 php에 대해선 아는게 거진 없지만 C++과 비슷하다고 하니까 C++을 기준으로 생각하자면 default parameter가 동작하려면 prototype에 기술해줘야 하는데 그냥 사용하면 부족한 인수에 null값이 들어간다고 착각했습니다
    일단 default parameter를 이용하는 방법으로 수정해 보겠습니다
    안되면 제가 php책을 좀 찾아봐서 function overloading으로 할수 있게 해보겠습니다

    책벌레님께
    다 다른분들이 트랙백도 보내주고 하신 덕이지요^^

  69. H.Moon Says:

    새로이 만들어주신 두 파일을 방금 설치해 봤습니다.
    엑토에서도 아무런 문제없이 잘 작동되며, 어떠한 에러메시지도 보내질 않네요.
    성공인것 같습니다.
    감사합니다~

  70. unfusion Says:

    인사도 없이 만들어 주신 패치를 잘 쓰고 있는 염치없는 사람입니다. 안 그래도 엑토에서의 에러 때문에 이전 버전의 xmlrpc.php를 복사해서 쓰고 있었는데 수정 버전이 올라와서 기쁜마음에 받아서 설치를 했습니다. 그런데 같은 UTF-8 인코딩 사이에 트랙백을 보낼때 타이틀이나 블로그 이름은 이상없이 나오는데 excerpt 부분이 깨져서 나오네요. 제 블로그에서만 그런건지, 죄송하지만 확인 좀 부탁드려도 될까요.
    http://www.ceprix.net/archives/pathstats-installed/
    이 쪽에 트랙백을 보냈는데 깨져서 제 블로그에서 테스트를 해봤더니 똑같더군요.

  71. thinkini Says:

    H.Moon님께
    테스트 해주시고 문제점 보고해주셔서 감사합니다^^

    unfusion님께
    unfusion님의 문제는 워드프레스 자체의 문제였습니다
    특이한 경우로 excerpt를 자르는 과정에서 발생하는 문제인듯 합니다
    버그 보고를 하고 싶은데 짧은 영어라..^^

  72. unfusion Says:

    아, 워드프레스의 문제 였군요. 이런 특이한 케이스에 걸리다니 ^^;, 문제가 발생한 포스트를 수정하고 잘 되는지 봐야 겠네요. 테스트 해주셔서 감사합니다.

  73. thinkini Says:

    unfusion님께
    지금 블로그에 다시 가봤는데 아직도 테스트중이시군요
    다른 트랙백도 깨져있어서 그것도 복사해서 패치를 안한 워드프레스에서 트랙백을 해본 결과 역시나 깨지더군요
    생각보다 상당히 자주 발생하게 되는 문제인것 같습니다
    버그 보고를 해야할 수준인듯..

  74. unfusion Says:

    네 지금 엑토를 사용해 포스팅한 글에서 공통적으로 발생하는건 아닌가 하고 확인하고 있었습니다. WB Editor2 라는 블로깅 클라이언트를 잠시 쓴 적 있는데 그 툴에서 작성한 글에서는 문제가 발생하지 않는 것 같기도 해서요. 개행 코드를 강제로 삽입하면 어떻게 될까 궁금 하기도 하구요.

  75. thinkini Says:

    저는 ecto가 아닌 워드프레스 자체에서 테스트 한거라 ecto만의 문제는 아닌것 같습니다
    소스를 보니 except를 짜르는 핵심은 /wp-includes/functions.php의 apply_filters라는 함수 같은데 봐도 잘 모르겠네요
    아무튼 방법을 알게 되면 워드프레스에 버그 보고도 하셔서 다음 버전에는 이런 문제가 없게 해주세요^^

  76. unfusion Says:

    저는 wp-trackback.php의 101번째 라인이 excerpt를 255 (252 + “…” )길이로 잘라내는 것 같아서 건드려 보고 있는데 php에 대해 무지해서 쉽질 않네요.

    그리고 저도 영어가 약해서 버그 보고를 할 수 있으려나 모르겠습니다.

  77. thinkini Says:

    unfusion님께
    제가 이 hack을 만드느라 알아낸 걸로는 wp-trackback.php는 받는 트랙백을 담당합니다. 그 부분은 255자 이상의 길이로 들어오는 excerpt를 자르는 부분인거 같습니다.
    흠흠 시간이 나면 저도 방법을 찾아보겠습니다^^

  78. thinkini Says:

    unfusion님께
    지금 테스트해 본 결과 unfusion님의 생각이 옳았습니다. 일단 받는 트랙백에서의 문제입니다. 워드프레스 자체에서 받는 트랙백을 mb_convert_encoding 함수를 통해 인코딩 변경을 하는데 그때 utf-8로 재변환시키면서 트랙백이 깨지게 됩니다. 이 부분을 주석처리 하니까 깨지지 않습니다. 그렇다고 이걸 없애서 해결할게 아니라 보다 근본적인 문제는 트랙백을 보낼때 $excerpt = substr($excerpt, 0, 252) . ‘…’;을 통해서 멀티바이트문자에 관계없이 그냥 짤라서 보낸다는 것입니다. 그래서 받는쪽에서 오류가 발생하게 됩니다. 위에 언급한 apply_filter()는 먼가 복잡해서 이걸로 멀티바이트 문자를 쪼개는 걸로 착각했는데 말그대로 필터를 적용하는 함수더군요. 이 함수는 상관없습니다 제가 잘못 생각한 것입니다. 이 문제에 대해선 여러가지 해결방법이 있는데 /wp-includes/function-post.php의 do_trackbacks함수에서 문제를 해결하는 방법이 가장 좋을것 같습니다.

  79. unfusion Says:

    유니코드용 함수를 인터넷에서 찾아내 삽입한 뒤에 $excerpt를 검사해서 UTF-8 일때는 substr() 대신에 유니코드용 함수로 잘라내면 해결 되지 않을까 했는데 뭐가 잘못 됐는지 잘 안되더군요. 오늘 아침에 pathstat 플러그인 만들던거 날려먹느라고 잊고 있었는데 다시 들여다 봐야 겠습니다.
    (받는 쪽의 문제라면…받는 쪽이 문제가 해결된 인코딩 패치를 설치한 상태라야 제대로 $experpt를 잘라낼 수 있겠군요)

  80. thinkini Says:

    unfusion님께
    받는 쪽에서 인코딩을 변환 시키는 것이라 문제이긴 한데 근본적인 문제는 문자를 제대로 자르지 않고 보내서 인코딩을 헤깔리게 만든다는 것이지요^^
    여러가지 해결방법 중에서 고민하다 그냥 가장 간편한 방법을 택했습니다.

  81. 절망 클럽 Says:

    Wordpress 트랙백 인코딩 패치 TE

    바람님께서 Ecto에서의 문제를 해결한 SE 버전에 이어 제가 보고했던 $excerpt의 인코딩 문제를 해결한 TE 버전을 내놓으셨습니다. 덕분에 워드프레스에서의 블로깅이 더욱 즐거워질 것 같습니…

  82. Flow Says:

    Wind-like Blog » Blog Archive » 워드프레스 트랙백핑 인코딩 문제 해결

    열심히 다른데에 트랙백을 보낼때 한글이 깨지길래 해결법을 찾아서 바꿔놓았다. 근데 다시 실험해봐도 여전히 트랙백을 보낼때 한글이 깨진다…

  83. she Says:

    감사합니ㅏ. 해결 되었군요.

  84. Jay Says:

    안녕하세요. 패치 잘 받아서 쓰고 있습니다. 그런데 functions.php 에서 $trackback_url 은 인코딩 변경을 안하셨는데요, 이유가 궁금합니다. 한글이 들어있는 URL 에서 트랙백이 온 경우 안나올 때가 있어서요…이거 바꾸면 어떻게 되나요?

  85. 바람 Says:

    Jay님께
    안나온다 함은 트랙백 자체가 안나오는 것입니까 아니면 url만 안나온다는 것인지요
    한글 url은 여러가지로 난감하군요
    블로그의 인코딩과 상관없이 서버의 인코딩을 따르니까 utf-8로 인코딩된 블로그라도 폴더 이름은 euc-kr인 경우도 많을 테구요
    링크 클릭했을때의 문제라면 브라우져의 옵션도 상관이 있을거고..
    아무튼 좀더 자세히 문제점을 설명해 주시면 방법을 생각해 보겠습니다^^
    일단은 손 안대시는게 좋을거 같군요

  86. Jay Says:

    네에. 트랙백을 받았는데, 다른 건 나오는 데 보낸 URL에 한글이 들어있어서, 한글 URL만 안나옵니다. 깨져서 나오는 게 아니고 URL 가운데 한글 부분이 빠져서 나오네요.

  87. 바람 Says:

    Jay님께
    답변이 많이 늦었죠.. 이제야 여유가 좀 나네요^^
    한글폴더에 블로그를 설치하고 시험해 봤는데 단순한 문제가 아니더군요
    일단 기본적으로 워드프레스는 코멘트의 링크주소에 한글을 쓰지 못합니다
    windlike.net/한글주소1/ 을 입력하면 windlike.net/1/ 이 입력됩니다
    그래서 이 문제를 해결하기 위해선 코멘트 쪽도 수정해야 합니다
    트랙백 주소를 올바르게 변환하는데까진 성공했는데 결국 코멘트로 입력되는 과정에서 한글은 사라져 버리는 군요
    %도 사라져서 나오기 때문에 코멘트쪽 파일들을 손보지 않는한 방법이 없습니다

Leave a Reply