MT에서의 트랙백 인코딩 문제

대부분의 블로그 서비스가 트랙백 표준을 지키지 않고, EUC-KR 트랙백에 의존하고 있어서 MT로 트랙백을 보내는 데에 애로사항이 있다. 물론, Gratia님의 트랙백 패치도 있지만, 패치 자체가 복잡해서 귀찮은 나머지, 그냥 euc-kr로 보내도록 수정해버렸다. charset을 적절히 설정해주는 한 트랙백 표준 1.2에 위배되는 것은 아니니까… 그리고, UTF-8을 지원하는 블로그 구현이라면, 트랙백 표준도 제대로 구현하고 있을거야, 라는 약간은 안일한 가정. 다음 코드는 MT/lib/MT.pm의 수정사항.

의도한 것은 아닌데, 어쩌다보니 마루타가 되어버린, 젊은 거장님윗치님, 그리고 묵형에게 심심한 사과의 말씀을 드려야겠다. (사실 묵형쪽은 의도적으로 테스트한 것이다!)

        ## Build query string to be sent on each ping.
my @qs;
# BEGIN trackback patch by Joseph Jang
#push @qs, 'title=' . MT::Util::encode_url($entry->title);
#push @qs, 'url=' . MT::Util::encode_url($entry->permalink);
#push @qs, 'excerpt=' . MT::Util::encode_url($entry->get_excerpt);
#push @qs, 'blog_name=' . MT::Util::encode_url($blog->name);
use Encode;
push @qs, 'title=' . MT::Util::encode_url(Encode::encode("euc-kr", Encode::decode("utf-8", $entry->title)));
push @qs, 'url=' . MT::Util::encode_url(Encode::encode("euc-kr", Encode::decode("utf-8", $entry->permalink)));
push @qs, 'excerpt=' . MT::Util::encode_url(Encode::encode("euc-kr", Encode::decode("utf-8", $entry->get_excerpt)));
push @qs, 'blog_name=' . MT::Util::encode_url(Encode::encode("euc-kr", Encode::decode("utf-8", $blog->name)));
#END
my $qs = join '&', @qs;
#$qs = Encode::encode("euc-kr", Encode::decode("utf-8", $qs));
## Character encoding--best guess. Default to iso-8859-1, just as we
## do in MT::Template::Context::_hdlr_publish_charset.
# BEGIN trackback patch by Joseph Jang
#my $enc = $mt->{cfg}->PublishCharset || 'iso-8859-1';
my $enc = "euc-kr";
#END

“MT에서의 트랙백 인코딩 문제”에 대한 1개의 생각

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.