UTF-8 버전에서 네이버로 트랙백시 글자깨짐 정보
UTF-8 버전에서 네이버로 트랙백시 글자깨짐본문
UTF-8버전으로 사용하고 있습니다.
PHP는 4.4.1 버전입니다.
트랙백을 네이버 블로그로 보내니
글자까 깨져서 나옵니다.
해결 방법은 없는 것인가요?
댓글 전체
네이버에서 UTF-8 인코딩으로 넘어온 데이타는 지원이 안되는 현상이라면
iconv() 함수를 이용하여 인코딩을 변환시킨후 트랙백을 보내야 할듯 합니다.
iconv("내용", "원래문자셋" , "바꿀문자셋");
$트랙백보낼내용 = iconv($트랙백보낼내용, "UTF-8" , "EUC-KR");
iconv() 함수를 이용하여 인코딩을 변환시킨후 트랙백을 보내야 할듯 합니다.
iconv("내용", "원래문자셋" , "바꿀문자셋");
$트랙백보낼내용 = iconv($트랙백보낼내용, "UTF-8" , "EUC-KR");
헐랭이님
어디에서 말씀하신 작업을 해야 하나요?
어디에서 말씀하신 작업을 해야 하나요?
bbs/write_update.php 의 하단에 아래의 코드가 나옵니다.
// 트랙백 주소가 있다면
if (($w != "u" && $wr_trackback) || ($w=="u" && $wr_trackback && $re_trackback))
{
$trackback_url = "$g4[url]/$g4[bbs]/tb.php/$bo_table/$wr_id";
$msg = "";
$msg = send_trackback($wr_trackback, $trackback_url, $wr_subject, $board[bo_subject], $_POST[wr_content]);
if ($msg)
echo "<script language='JavaScript'>alert('$msg $wr_trackback');</script>";
}
위의 코드를 아래처럼 해보세요.
참고로 제가 테스트해볼 여건이 안되어 테스트를 못하며 단순히 생각나는 것을 적은 것이므로 참고 하세요.^^
// 트랙백 주소가 있다면
if (($w != "u" && $wr_trackback) || ($w=="u" && $wr_trackback && $re_trackback))
{
$trakwr_content = iconv($_POST[wr_content], "UTF-8" , "EUC-KR");
$trackback_url = "$g4[url]/$g4[bbs]/tb.php/$bo_table/$wr_id";
$msg = "";
$msg = send_trackback($wr_trackback, $trackback_url, $wr_subject, $board[bo_subject], $trakwr_content);
if ($msg)
echo "<script language='JavaScript'>alert('$msg $wr_trackback');</script>";
}
// 트랙백 주소가 있다면
if (($w != "u" && $wr_trackback) || ($w=="u" && $wr_trackback && $re_trackback))
{
$trackback_url = "$g4[url]/$g4[bbs]/tb.php/$bo_table/$wr_id";
$msg = "";
$msg = send_trackback($wr_trackback, $trackback_url, $wr_subject, $board[bo_subject], $_POST[wr_content]);
if ($msg)
echo "<script language='JavaScript'>alert('$msg $wr_trackback');</script>";
}
위의 코드를 아래처럼 해보세요.
참고로 제가 테스트해볼 여건이 안되어 테스트를 못하며 단순히 생각나는 것을 적은 것이므로 참고 하세요.^^
// 트랙백 주소가 있다면
if (($w != "u" && $wr_trackback) || ($w=="u" && $wr_trackback && $re_trackback))
{
$trakwr_content = iconv($_POST[wr_content], "UTF-8" , "EUC-KR");
$trackback_url = "$g4[url]/$g4[bbs]/tb.php/$bo_table/$wr_id";
$msg = "";
$msg = send_trackback($wr_trackback, $trackback_url, $wr_subject, $board[bo_subject], $trakwr_content);
if ($msg)
echo "<script language='JavaScript'>alert('$msg $wr_trackback');</script>";
}
순서가 바뀐듯 합니다.ㅠㅠ 테스트 해볼 여건이 안되어 저두 답답 하네요.
아래처럼 해보세요.
// 트랙백 주소가 있다면
if (($w != "u" && $wr_trackback) || ($w=="u" && $wr_trackback && $re_trackback))
{
$trakwr_content = iconv("UTF-8", "EUC-KR", $_POST[wr_content]);
$trackback_url = "$g4[url]/$g4[bbs]/tb.php/$bo_table/$wr_id";
$msg = "";
$msg = send_trackback($wr_trackback, $trackback_url, $wr_subject, $board[bo_subject], $trakwr_content);
if ($msg)
echo "<script language='JavaScript'>alert('$msg $wr_trackback');</script>";
}
아래처럼 해보세요.
// 트랙백 주소가 있다면
if (($w != "u" && $wr_trackback) || ($w=="u" && $wr_trackback && $re_trackback))
{
$trakwr_content = iconv("UTF-8", "EUC-KR", $_POST[wr_content]);
$trackback_url = "$g4[url]/$g4[bbs]/tb.php/$bo_table/$wr_id";
$msg = "";
$msg = send_trackback($wr_trackback, $trackback_url, $wr_subject, $board[bo_subject], $trakwr_content);
if ($msg)
echo "<script language='JavaScript'>alert('$msg $wr_trackback');</script>";
}
이걸로 테스트 해보니까
본문은 잘 됩니다...
제목이 깨지는것은 해결이 안되네요...^^
본문은 잘 됩니다...
제목이 깨지는것은 해결이 안되네요...^^
제목도 컨버팅 해 보시죠...iconv....^^
$wr_subject, $board[bo_subject] <-요 부분도 변환을 시켜야 하네요.ㅋㅋ
현재 트랙백 보내느 곳이 UTF-8 인가요....?
그럼 나도 테스트 하러 가야쥥.....^^
그럼 나도 테스트 하러 가야쥥.....^^
제목,게시판이름,내용 을 모두 적용하면 아래처럼 되는데 잘되런지는 모르겠네요.ㅎㅎ
// 트랙백 주소가 있다면
if (($w != "u" && $wr_trackback) || ($w=="u" && $wr_trackback && $re_trackback))
{
$trakwr_content = iconv("UTF-8", "EUC-KR", $_POST[wr_content]);
$trakwr_contents = iconv("UTF-8", "EUC-KR", $wr_subject);
$trakwr_contentm = iconv("UTF-8", "EUC-KR", $board[bo_subject]);
$trackback_url = "$g4[url]/$g4[bbs]/tb.php/$bo_table/$wr_id";
$msg = "";
$msg = send_trackback($wr_trackback, $trackback_url, $trakwr_contents, $trakwr_contentm, $trakwr_content);
if ($msg)
echo "<script language='JavaScript'>alert('$msg $wr_trackback');</script>";
}
// 트랙백 주소가 있다면
if (($w != "u" && $wr_trackback) || ($w=="u" && $wr_trackback && $re_trackback))
{
$trakwr_content = iconv("UTF-8", "EUC-KR", $_POST[wr_content]);
$trakwr_contents = iconv("UTF-8", "EUC-KR", $wr_subject);
$trakwr_contentm = iconv("UTF-8", "EUC-KR", $board[bo_subject]);
$trackback_url = "$g4[url]/$g4[bbs]/tb.php/$bo_table/$wr_id";
$msg = "";
$msg = send_trackback($wr_trackback, $trackback_url, $trakwr_contents, $trakwr_contentm, $trakwr_content);
if ($msg)
echo "<script language='JavaScript'>alert('$msg $wr_trackback');</script>";
}
제가 테스트해본바로는 이소스로 잘 됩니다...
헐랭이님 감사합니다...^^
헐랭이님 감사합니다...^^
지금처럼하시면 kr은 제데로간다 해도 문자셋이다른페이지는 어떻게.....
제생각엔 send_trackback이 함수를 수정해야 될것 같습니다
parse_url(); 이함수를 사용해서 전송할 웹페이지의 헤더 정보를 얻어서
즉 그 웹페이지 문자셋을 알아온 후 (정규편현을쓰면 알아올거예요)
알아온게
out_charset = euc-kr; 라면
string str = $wr_subject; 기타등등
iconv ( string in_charset, string out_charset, string str) 이므로
$out = iconv(그누_charset, out_charset .'//TRANSLIT', string str) ;
이 $out을 센드 하면될거 같군요.
제가 utf-8을 안쓰니 .....
이거는 역쉬 관리자님의 몫인것 같습니다.
임의로 고쳤다가는 업 할 때 귀찬게 될거 같군요....
실질적인 도움이못되서.... 용서하셔요
그나저나 네이버는 언제 ?
utf-8에서 euc-kr로 바뀌었네요.
고맙습니다.
제생각엔 send_trackback이 함수를 수정해야 될것 같습니다
parse_url(); 이함수를 사용해서 전송할 웹페이지의 헤더 정보를 얻어서
즉 그 웹페이지 문자셋을 알아온 후 (정규편현을쓰면 알아올거예요)
알아온게
out_charset = euc-kr; 라면
string str = $wr_subject; 기타등등
iconv ( string in_charset, string out_charset, string str) 이므로
$out = iconv(그누_charset, out_charset .'//TRANSLIT', string str) ;
이 $out을 센드 하면될거 같군요.
제가 utf-8을 안쓰니 .....
이거는 역쉬 관리자님의 몫인것 같습니다.
임의로 고쳤다가는 업 할 때 귀찬게 될거 같군요....
실질적인 도움이못되서.... 용서하셔요
그나저나 네이버는 언제 ?
utf-8에서 euc-kr로 바뀌었네요.
고맙습니다.
헐랭이님의 방법으로 수정했더니
네이버로 보내는 것은 문제가 해결되었습니다.
그런데 같은 UTF-8의 게시판으로 트랙백을 보내면
URL만 나오는 문제가 있습니다.
김장군님의 말처럼 관리자님께서 해결해야 하는 문제인가 봅니다.
네이버로 보내는 것은 문제가 해결되었습니다.
그런데 같은 UTF-8의 게시판으로 트랙백을 보내면
URL만 나오는 문제가 있습니다.
김장군님의 말처럼 관리자님께서 해결해야 하는 문제인가 봅니다.
헐랭이님의 방법과 김장군님의 방법을 조합하면,
자동으로 선별해서 보낼수 있을듯 하네요....^^
자동으로 선별해서 보낼수 있을듯 하네요....^^
지금 알게 된 것인데요, 트랙백 받는 것에 문제가 있습니다.
일단 헐랭이님의 방법은 UTF-8을 EUC-KR로 변환해서 전송하는 것입니다.
이러면 네이버등 EUC-KR방식을 사용하는 곳에는 제대로 가죠.
UTF-8을 사용하는 곳이라면 김장군님의 방법처럼 상대방 헤더를 읽어서 선택적으로 하는 방법으로 할 수도 있겠죠.
그런데 문제는 제 홈페이지에 있습니다.
네이버 블로그에서 제 게시글로 트랙백을 보내니, URL만 보입니다.
내가 보내는 것만 신경을 쓰다가 정작 내가 받는 것에도 문제가 있다는 것을 놓쳤습니다.
EUC-KR에서 제 UTF-8로 보내는 것을 어떻게든 또다시 변환해야 할 것 같습니다.
일단 헐랭이님의 방법은 UTF-8을 EUC-KR로 변환해서 전송하는 것입니다.
이러면 네이버등 EUC-KR방식을 사용하는 곳에는 제대로 가죠.
UTF-8을 사용하는 곳이라면 김장군님의 방법처럼 상대방 헤더를 읽어서 선택적으로 하는 방법으로 할 수도 있겠죠.
그런데 문제는 제 홈페이지에 있습니다.
네이버 블로그에서 제 게시글로 트랙백을 보내니, URL만 보입니다.
내가 보내는 것만 신경을 쓰다가 정작 내가 받는 것에도 문제가 있다는 것을 놓쳤습니다.
EUC-KR에서 제 UTF-8로 보내는 것을 어떻게든 또다시 변환해야 할 것 같습니다.
write_update.php 의 트랙백관련 소스중 보내는것과 받는것을 같은소스로 담당하고 있기때문에 그렇습니다 ..
그것을 조건문을 써서 $wr_trackback 과 $re_trackback 를 별도의 소스로 동작하도록 분리해주시면 해결될텐데요...^^
그것을 조건문을 써서 $wr_trackback 과 $re_trackback 를 별도의 소스로 동작하도록 분리해주시면 해결될텐데요...^^
허걱!...
너무 어렵습니다. T_T
너무 어렵습니다. T_T
소스 분리는?
if ($w=="u" && $re_trackback){
받는 트랙백소스
} else {
보내는 트랙백소스
}
이렇게 하시면 되지 않을까요?
if ($w=="u" && $re_trackback){
받는 트랙백소스
} else {
보내는 트랙백소스
}
이렇게 하시면 되지 않을까요?