utf-8 을 euc-kr 로 타사이트로 내보내는 방법좀 알려주세요 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

utf-8 을 euc-kr 로 타사이트로 내보내는 방법좀 알려주세요 정보

utf-8 을 euc-kr 로 타사이트로 내보내는 방법좀 알려주세요

본문

<?
// 그누 4로 개조 rolo 님

$_gn_path = "../";
$userivalue="지오아이디입력"; //가입아이디

include_once("./_common.php");
include_once("$g4[path]/_head.php");

if(!$member[mb_id])
 {
 $script="
  <script language=javascript>
  function geogameC(view)
  {
  alert('로그인하셔야합니다');
  }
  </script>
 ";
 }
 else{
  //수정한 부분090422 정현우
  $member[mb_name] = stripslashes($member[mb_name]);
  $member[mb_birth] = substr($member[mb_birth],0,4);
  $age=intval(date("Y"))-intval($member[mb_birth])+1;
  if(!$member[mb_sex]){
  $script="
    <script language=javascript>
    function geogameC(view)
    {
    alert('죄송합니다. 회원정보에서 성별을 입력하여 주시기 바라겠습니다..');
    }
    </script>
  ";
  }
  elseif($age < 20)
  {
  $script="
    <script language=javascript>
    function geogameC(view)
    {
    alert('죄송합니다. 미성년자는 이용할 수 없습니다.');
    }
    </script>
  ";
  }
  else
  {
  $script="
    <script language=javascript>
    function geogameC(view)
    {
    document.geogameF.view.value=view;
    geogame=window.open('','geogame','toolbar=no,resizable=no,scrollbars=yes,status=no,width=817,height=600');
    document.geogameF.submit();
    }
    </script>
  ";
  }
 }
echo $script;
?>

<style type="text/css">
#main { margin:0 0 0 0; }
#main .latest-block { margin:5px 0 0 0; }
#main .block-zero { margin:0 0 0 0; }
#main .main-ad { margin-top:0px; background-color:#efefef; line-height:25px; text-align:center; }
#main .main-gamezone { width:600px; margin:0px 0 0 0; text-align:left; }
</style>

<form name='geogameF' target='geogame' method='post' action='http://asp.geopia.com'>
<input type='hidden' name='view' value=''>
<input type='hidden' name='store' value='<?=$userivalue ?>'> <!--지오피아에서 부여한 회원사ID-->
<input type='hidden' name='userid' value='<?=$member[mb_id]?>'> <!--30byte이하-->
<input type='hidden' name='passwd' value='<?=substr(md5($member[mb_id]),0,12)?>'> <!--12byte이하-->
<input type='hidden' name='hanid' value='<?=$member[mb_name]?>'> <!--28byte이하-->
<input type='hidden' name='gender' value='<?=strtolower($member[mb_sex])?>'> <!--m or f - m:남성,f:여성-->
</form>





-------------------------------------------------------------
위 소스는 지오맞고 소스인데요,  실행하면 사진처럼 별명이 한글일경우 깨져나오더라구요.

1번소스  $member[mb_name] = stripslashes($member[mb_name]);
2번소스 <input type='hidden' name='hanid' value='<?=$member[mb_name]?>'> <!--28byte이하-->

이 두부분이 별명인데 어떻게 iconv 로 불러와야할지 모르겠습니다..

또, 2번소스를
<input type='hidden' name='hanid' value='<?=iconv("utf-8","euc-kr",$member[mb_name])?>'>
<!--28byte이하--> 

이렇게 바꾸고 실행하면 아래 그림처럼 경고가 뜹니다. (별명이 개똥이 일경우)



제 서버 인코딩은 utf-8 이고 출력되는곳은 euc-kr 입니다.
제서버의 별명을 출력되는곳에 정상적으로 표시되게 하려면 어찌해야하나요?

  • 복사

댓글 전체

이렇게 함 해 보시죠 ?

$member[mb_name] = stripslashes($member[mb_name]);//? 안되면 주석처리

$member[mb_name] = urldecode($member[mb_name]);

$utf8decoded = iconv("UTF-8", "EUC-KR", $member[mb_name]);

<input type='hidden' name='hanid' value='<?=$utf8decoded?>'> <!--28byte이하-->
$utf8decoded = iconv("UTF-8", "EUC-KR", $member[mb_name]);
<input type='hidden' name='hanid' value='<?=$utf8decoded?>'> <!--28byte이하-->

으로 혼용할경우 占쏙옙占쏙옙占쏙옙 이렇게 출력됩니다.
$member[mb_name] = stripslashes($member[mb_name]);//? 안되면 주석처리
$member[mb_name] = urldecode($member[mb_name]);
$utf8decoded = iconv("UTF-8", "EUC-KR", $member[mb_name]);



<input type='hidden' name='hanid' value='<?=$utf8decoded?>'> <!--28byte이하-->

이렇게 쓸경우 아래처럼 출력됩니다.

占쏙옙占쏙옙占쏙옙
form 태그에 accept-charset="euc-kr" 추가하시면 됩니다.
============================================
<form name='geogameF' target='geogame' method='post' action='http://asp.geopia.com' accept-charset="euc-kr">
============================================


다만 IE의 경우에는 accept-charset을 속성을 인식하지 못할 수 있으니 onsubmit 이벤트에 함수를 추가합니다.
============================================
<script type="text/javascript">
function emulAcceptCharset(form)
{
if (form.canHaveHTML) {
document.charset = form.acceptCharset;
return true;
}
}
</script>
<form name='geogameF' target='geogame' method='post' action='http://asp.geopia.com' accept-charset="euc-kr" onSubmit="return emulAcceptCharset(this);">
============================================

2번소스는 원래대로 바꾸시기 바랍니다.
<input type='hidden' name='hanid' value='<?=$member[mb_name]?>'>
© SIRSOFT
현재 페이지 제일 처음으로