-
2006/12/28 3:16 오후 #2393
안녕하세요. 워드 테마를 andyblue-ver-1.3를 적용하여 사용중에 있습니다.
제 홈피 주소는 "http://suakii.byus.net"이구요.
문제는 글에 코멘트를 달고 submit을 누른후에는 제대로 입력이 되는것 같아 보입니다만
새로고침을 해보면 코멘트가 깨어져서 보입니다. 테마 파일의 "comments.php"의 아래
라인에서 Ajax관련해서 charset에러같은데 잘 모르겠습니다.
현재 로그설정은 "euc-kr"을 사용하고있답니다.
그래서 아래의 comments.php파일의 빨간색 부분을 삭제하고서 다시 적용을 하면
코멘트가 깨어지지는 않는데 근본적인 해결책이 어떻게 되어야 할지 질문 드립니다.<form id="commentform" action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" [color=red] onsubmit="new Ajax.Updater({success: 'commentlist'}, '<?php bloginfo('stylesheet_directory') ?>/comments-ajax.php', {asynchronous: true, evalScripts: true, insertion: Insertion.Bottom, onComplete: function(request){complete(request)}, onFailure: function(request){failure(request)}, onLoading: function(request){loading()}, parameters: Form.serialize(this)}); return false;">
2006/12/30 5:38 오전 #2394제가 EUC-KR 로 블로그를 운영해 보지 않아 확실한 답변은 힘들군요.
우선 임시로 EUC-KR로 설정을 바꾼 뒤 테스트 해 보니, 일반적으로 댓글을 등록할때는 EUC-KR로 잘 입력이 되나, ajax를 이용할 때 UTF-8로 인코딩이 변형되는걸 확인했습니다.
제가 보기에 원인은 javascript 로 ajax를 요청할 때 자연스럽게 인코딩이 변환되는듯 하군요.
권장해 드리고 싶은 해결법은 블로그를 UTF-8로 운영하는것이고,
현재 상태에서의 임시 해결책은…..
comment-ajax.php파일의 윗부분에서 foreach 부분에 아래와 같이 인코딩을 변경하는 라인을 추가하는 것입니다.
foreach($_POST as $k=>$v) {
$_POST[$k] = urldecode($v);
if(function_exists('mb_convert_encoding')
$_POST[$k] = mb_convert_encoding($v, get_settings('blog_charset'), 'ASCII, UTF-8, EUC-KR, ISO-8859-1');}
아니면 현재 사용하시는것 처럼 ajax-comment 기능을 사용하지 않는것입니다.
참, 그리고 위의 방법은 mb_convert_encoding 함수를 서버(PHP)에서 지원해야만 사용 가능합니다.
2006/12/30 5:38 오전 #2398제가 EUC-KR 로 블로그를 운영해 보지 않아 확실한 답변은 힘들군요.
우선 임시로 EUC-KR로 설정을 바꾼 뒤 테스트 해 보니, 일반적으로 댓글을 등록할때는 EUC-KR로 잘 입력이 되나, ajax를 이용할 때 UTF-8로 인코딩이 변형되는걸 확인했습니다.
제가 보기에 원인은 javascript 로 ajax를 요청할 때 자연스럽게 인코딩이 변환되는듯 하군요.
권장해 드리고 싶은 해결법은 블로그를 UTF-8로 운영하는것이고,
현재 상태에서의 임시 해결책은…..
comment-ajax.php파일의 윗부분에서 foreach 부분에 아래와 같이 인코딩을 변경하는 라인을 추가하는 것입니다.
foreach($_POST as $k=>$v) {
$_POST[$k] = urldecode($v);
if(function_exists('mb_convert_encoding')
$_POST[$k] = mb_convert_encoding($v, get_settings('blog_charset'), 'ASCII, UTF-8, EUC-KR, ISO-8859-1');}
아니면 현재 사용하시는것 처럼 ajax-comment 기능을 사용하지 않는것입니다.
참, 그리고 위의 방법은 mb_convert_encoding 함수를 서버(PHP)에서 지원해야만 사용 가능합니다.
2006/12/30 7:20 오후 #2395안녕하세요. 답변주신대로 하니까 일단
인코딩 관련해서는 해결이 된것같아요.
제 홈페이지의 디비환경이 euc-kr이고 당분간 바꾸기는 어렵다는
답변이 일단 있어서.
일단 지금 코멘트는 제대로 보이는데요. 문제는 코멘트 작성후
submit을 눌렀을때 Ajax가 뿌려주는 입력 코멘트 내용이 이번에는
깨어져서 보이네요. 물론 페이지를 리로딩하면 제대로 된 입력이 보이지만
말입니다. 또 어디서 문제가 발생했는지 잘 모르겠습니다.
테마의 js밑의 각종 파일들에서 문제가 발생하는지 ..
다시한번만 생각해주시기 바랍니다.
맨날 질문만 드리네요.^^2006/12/30 7:20 오후 #2399안녕하세요. 답변주신대로 하니까 일단
인코딩 관련해서는 해결이 된것같아요.
제 홈페이지의 디비환경이 euc-kr이고 당분간 바꾸기는 어렵다는
답변이 일단 있어서.
일단 지금 코멘트는 제대로 보이는데요. 문제는 코멘트 작성후
submit을 눌렀을때 Ajax가 뿌려주는 입력 코멘트 내용이 이번에는
깨어져서 보이네요. 물론 페이지를 리로딩하면 제대로 된 입력이 보이지만
말입니다. 또 어디서 문제가 발생했는지 잘 모르겠습니다.
테마의 js밑의 각종 파일들에서 문제가 발생하는지 ..
다시한번만 생각해주시기 바랍니다.
맨날 질문만 드리네요.^^2006/12/31 4:36 오전 #2396안그래도 그부분을 설명할까 하다가 그냥 지나쳤었네요.
commnet-ajax.php 파일의 맨 아랬쪽에 아래와 같이 한줄을 추가하면 그 부분도 해결될거에요.
@header('Content-type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
echo "<li style=""".$matches[1].">".$matches[2]."</li>";2006/12/31 4:36 오전 #2400안그래도 그부분을 설명할까 하다가 그냥 지나쳤었네요.
commnet-ajax.php 파일의 맨 아랬쪽에 아래와 같이 한줄을 추가하면 그 부분도 해결될거에요.
@header('Content-type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
echo "<li style=""".$matches[1].">".$matches[2]."</li>"; -
AuthorPosts
- 답변은 로그인 후 가능합니다.