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

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

QA

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

답변 5

본문

안녕하세요,  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>​
​​

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 123,680
© SIRSOFT
현재 페이지 제일 처음으로