한글이 PC에 따라 깨짐현상이 있습니다.

한글이 PC에 따라 깨짐현상이 있습니다.

QA

한글이 PC에 따라 깨짐현상이 있습니다.

본문

안녕하세요,  Form 에서 입력받아 값을 패스하여 SQL 쿼리를 실행하는 간단한 php 프로그램을 만들었는데, PC 에 따라 깨지는 경우가 생깁니다.   IE를 사용해서 테스트를 했는데 이런현상이 나타납니다.

 

즉,   name 을 "홍길동" 으로 받아  srch_name.php 를 콜해서 srch_name.php 에서  $name 값을 사용했습니다.

메타값에 charcter set 을 utf-8 로 했습니다. 

 

$a = iconv("EUC-K","UTF-8", $name) 을 사용해서  해결했나 싶었는데, 다른 PC에서는 깨집니다.

 

깨지는 PC에서는  iconv 를 사용하지 않고 단순히 $a = $name 을 사용하면 제대로 보입니다.  (이 경우 iconv 함수를 사용한 PC는 글씨가 깨지구요..ㅠㅠ)

 

어느 세팅을 바꾸어야 해결이 될까요?

 

가르침 미리 감사드립니다.

오늘도 좋은하루되세요.

이 질문에 댓글 쓰기 :

답변 5

  gen_srch.xls.php 화일 자체를 utf-8형식으로 저장

  이 화일에  <meta charset="UTF-8"> 설정은 필요없음

 

_common 앞쪽에 저렇게 head가 들어가면 안됨

 

 

 

EUC-KR로 해야지 않나요?

메타태그로 인코딩을 지정해보셨나요?


<head>
<meta charset="UTF-8">
</head> 

 


 

예, 메타태그 지정했구요.  다음줄에 include_once("./_common.php"); 를 넣었습니다.  그런데, 한 PC에서는 잘동작하는데, 다른 PC에서는 iconv ("euc-kr", "utf-8",..) 해야 작동됩니다.  이럴경우, 잘되던 PC는 안되구요ㅠㅠ

흠.. 아무래도 인코딩이 잘못된거 같은데.. 익스플로러메뉴 중 보기 -> 인코딩 에서 두 컴퓨터의 차이점이 있나

확인해보세요. 테스트페이지라도 있으면 금방 풀릴거 같은데.. 흠.. 

<!-- 게시판 검색 시작 { -->
<div class="tbl_head01 tbl_wrap">
<table>
  <tr>
  <td>
  <form name="fsrch" id="fsrch" action="<?php echo $action_url ?>" onsubmit="return fsrch_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>">  
    <input type="hidden" name="myname" id="myname1" value="<?php echo $member['mb_name'] ?>">
    <input type="hidden" name="mylevel" id="mylevel1" value="<?php echo $member['mb_level'] ?>">
           과정: <input type="text" name="ban1" value="<?php echo $ban1 ?>" id="ban1" class="frm_input" size="4" maxlength="4">
           학생: <input type="text" name="std1" value="<?php echo $std1 ?>" id="std1" class="frm_input" size="6" maxlength="10">
           교사: <input type="text" name="tch1" value="<?php echo $tch1 ?>" id="tch1" class="frm_input" size="5" maxlength="10">
           시작일: <input type="text" name="sdt1" value="<?php echo $sdt1 ?>" id="sdt1" class="frm_input" size="10" maxlength="10">
           마감일: <input type="text" name="edt1" value="<?php echo $edt1 ?>" id="edt1" class="frm_input" size="10" maxlength="10"> (yyyy.mm.dd)
     <input type="submit" value="수업일지조회" class="btn_submit">
    </form>
  </td>
  </tr>
 </table>
</div>
<!-- } 게시판 검색 끝 -->

 

<!-- gen_srch.xls.php 를 콜하는 부분 -->

<script type="text/javascript">
function fsrch_submit(f)
{
    var f = document.fboardlist;
 var sdt = document.getElementById('sdt1').value;
    var edt = document.getElementById('edt1').value;
 var tch = document.getElementById('tch1').value;
    var std = document.getElementById('std1').value;
 var ban = document.getElementById('ban1').value;
    var myname = document.getElementById('myname1').value;
    var mylevel = document.getElementById('mylevel1').value;
 var stract = "./gen_srch.xls.php?bo_table=logbook";
 var str1 = "&sdt="+sdt;
 var str2 = "&edt="+edt;
 var str3 = "&tch="+tch;
 var str4 = "&std="+std;
 var str5 = "&ban="+ban;
 var str6 = "&myname="+myname;
 var str7 = "&mylevel="+mylevel;

//    f.sw.value = "xls";
//    f.target = "xls";

 stract =   "./gen_srch.xls.php?bo_table=logbook"+str1 + str2 + str3 + str4 + str5 + str6 + str7;
 window.open(stract, "LIST", "left=50, top=50, width=700, height=550, scrollbars=1");
//   f.action = stract
//  f.submit();
}

 

<!--  gen_srch.xls.php -->

문제를 해결해볼려고 iconv 함수를 사용해보기도 했습니다.

 

<head>
<meta charset="utf-8">
</head>
<?
include_once("./_common.php");

$today = date("Y-m-d");

$flg = 0;
$cond0 = "select * from {$write_table} ";

if ($mylevel > 4) {
 if (strlen($tch) > 1) { 
//  $cond1 = iconv("EUC-KR","UTF-8"," where wr_name = '{$tch}' ");
  $cond1 = " where wr_name = '{$tch}' ";
  $flg = 1;
 }
 else { $cond1 = "";  }
}
else {
// $cond1 = iconv("EUC-KR","UTF-8"," where wr_name = '{$myname}' ");
 $cond1 = " where wr_name = '{$myname}' ";
 $flg = 1;
}

if (strlen($std) > 1) { 
// if ($flg == 1) { $cond2 = iconv("EUC-KR","UTF-8"," and wr_subject = '{$std}' "); }
// else { $cond2 = iconv("EUC-KR","UTF-8"," where wr_subject =  '{$std}' "); }
 if ($flg == 1) { $cond2 = " and wr_subject = '{$std}' "; }
 else { $cond2 = " where wr_subject =  '{$std}' "; }
 $flg = 1;
}
else { $cond2 = ""; }

if (strlen($ban) > 1) { 
// if ($flg ==  1) { $cond3 = iconv("EUC-KR","UTF-8"," and wr_2 = '{$ban}' "); }  
// else { $cond3 = iconv("EUC-KR","UTF-8"," where wr_2 = '{$ban}' "); }
 if ($flg ==  1) { $cond3 = " and wr_2 = '{$ban}' "; }  
 else { $cond3 = " where wr_2 = '{$ban}' "; }
 $flg = 1;
}
else { $cond3 = ""; }

if (strlen($sdt) > 1) { 
// if ($flg == 1) { $cond4 = iconv("EUC-KR","UTF-8"," and wr_5 >= '{$sdt}' "); }
// else { $cond4 = iconv("EUC-KR","UTF-8"," where wr_5 >= '{$sdt}' "); }
 if ($flg == 1) { $cond4 = " and wr_5 >= '{$sdt}' "; }
 else { $cond4 = " where wr_5 >= '{$sdt}' "; }
 $flg = 1;
}
else { $cond4 = ""; }

if (strlen($edt) > 1) { 
// if ($flg == 1) { $cond5 = iconv("EUC-KR","UTF-8"," and wr_5 <= '{$edt}' "); }
// else { $cond5 = iconv("EUC-KR","UTF-8"," where wr_5 <= '{$edt}' "); }
 if ($flg == 1) { $cond5 = " and wr_5 <= '{$edt}' "; }
 else { $cond5 = " where wr_5 <= '{$edt}' "; }
 $flg = 1;
}
else { $cond5 = ""; }

$cond = $cond0 . $cond1 . $cond2 . $cond3. $cond4. $cond5. " order by wr_subject, wr_5 desc;";
 echo "<$cond1>$cond2<$cond3>$cond4<$cond5><br>";
 echo "<br>";

// $sql = "select * from {$write_table} where wr_10 = '0' and wr_5 >= '{$sdt}' and wr_5 <= '{$edt}' order by wr_name, wr_subject";
// $sql = "select * from {$write_table} where wr_5 >= '{$sdt}' and wr_5 <= '{$edt}' order by wr_name, wr_subject";

$ii = 1;
$row = mysql_query($cond);
?>

<b>수업일지조회  &nbsp<?php echo "($sdt ~ $edt)" ?></b><br>
<table border=1 width=100%>
  <tr>
    <td width=7% align=center>#</td>
    <td width=10% align=center>과정</td>
    <td width=10% align=center>학생</td>
    <td width=13% align=center>교사</td>
    <td width=15% align=center>수업일</td>
    <td width=10% align=center>그룹</td>
    <td width=10% align=center>OT</td>
    <td width=15% align=center>입력일</td>
    <td width=10% align=center>ID</td>
  </tr>
<?
 while ($rcd = mysql_fetch_array($row)) {
 ?>
  <tr>
    <td align=center><?php echo $ii; ?></td>
    <td align=center><?php echo $rcd[wr_2]; ?></td>
    <td align=center><?php echo $rcd[wr_subject]; ?></td>
    <td align=center><?php echo $rcd[wr_name]; ?></td>
    <td align=center><?php echo $rcd[wr_5]; ?></td>
    <td align=center><?php echo $rcd[wr_3]; ?></td>
    <td align=center><?php echo $rcd[wr_4]; ?></td>
    <td align=center><?php echo substr($rcd[wr_datetime],0,10); ?></td>
    <td align=center><?php echo $rcd[wr_id]; ?></td>
 </tr>
<?
 $ii = $ii + 1;
 }
?>
</table>​
​​

답변을 작성하시기 전에 로그인 해주세요.
전체 123,128 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT