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이하-->
<input type='hidden' name='hanid' value='<?=$utf8decoded?>'> <!--28byte이하-->
으로 혼용할경우 占쏙옙占쏙옙占쏙옙 이렇게 출력됩니다.
$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 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]?>'>
관리자 = 愿�由ъ옄
테스터 = ie8 에서는 �뀒�뒪�꽣
ie7 에서는 ?뚯뒪??/font>
이렇게 대화명이 나옵니다.