database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 25780 게시물 읽기
No. 25780
[질문]web(explorer)로 db에 utf8로 저장하였다가 utf8로 저장된 데이타 로드하기
작성자
황인상
작성일
2006-08-31 11:54
조회수
2,409

os : windows xp
db : mysql 5.0
소스코드 하단에 첨부

utf8에 대한 언급만 보셔도 아시겠지만. 한글외 다국어를 모두표기하려 합니다.





mysql> show variables like 'c%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value     |
+--------------------------+---------------------------------------------------------+
| character_set_client     | utf8     |
| character_set_connection | utf8     |
| character_set_database   | utf8     |
| character_set_filesystem | binary     |
| character_set_results    | utf8     |
| character_set_server     | utf8     |
| character_set_system     | utf8     |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
| collation_connection     | utf8_general_ci     |
| collation_database       | utf8_general_ci     |
| collation_server         | utf8_general_ci     |
| completion_type          | 0     |
| concurrent_insert        | 1     |
| connect_timeout          | 5     |
+--------------------------+---------------------------------------------------------+
14 rows in set (0.00 sec)


//
CREATE TABLE `abc` (                
  `aaa` varchar(1024) default NULL  
) ENGINE=InnoDB DEFAULT CHARSET=utf8


1. utf8로 저장은 어떻게 해야 하나요? 
      insert into table values('좋은하루'); // 데이타를 넣기 위해 어떤게 해야 할까요?

2. utf8로 저장된 데이타를 읽어와서 다시 explorer에 출력하려면 어떻게 해야 할까요?
    select aaa from abc;





========================소스코드===========================
<% @LANGUAGE="VBSCRIPT" CODEPAGE="65001" %>
<% Response.Charset = "utf-8"%>
<%
response.write "Sample Data : 가-나-Ğ-Ü-ĥ-ě-ğ-ķ-Ć-Ė-IJ-ʼn-ǽ-Ǿ-ǻ-Ǽ<BR><BR><BR>"
'@@@ Mysql 5.x  Test
Dim TED_DB : TED_DB = "DSN=nileblue;UID=;PWD="

Set DbConn = Server.CreateObject("ADODB.Connection")
DbConn.open TED_DB
'DbConn.execute("set names utf8")

if request("gub") = 1 THEN
 '@@@ INSERT
 Get_Data = "insert into abc values('"&request("ddd")&"') "
response.write Get_Data
 DbConn.execute(Get_Data), row
 
 response.write now() & "<BR>"
 response.write "SQL:" & Get_Data & "<BR>"
 response.write "update rows:" & row & "<BR><BR>"

elseif request("gub") = 2 THEN
 '@@@ DELETE
 Get_Data = "delete from abc "
 DbConn.execute(Get_Data), row
 
 response.write now() & "<BR>"
 response.write "SQL:" & Get_Data & "<BR>"
 response.write "delete rows:" & row & "<BR><BR>"
end if

%>
<html>
<head>
<title>TEST</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script>
function selectdata()
{
 location.href = "nileblue_test.asp?gub=0";
}
function insertdata()
{
 test_from.gub.value=1;
// test_from.ddd.value = escape(test_from.ddd.value);
 test_from.submit();
}
function deletedata()
{
 location.href = "nileblue_test.asp?gub=2";
}
</script>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<style type="text/css">
.shorttitle { width: 280; height: 20; display: inline-block; overflow: hidden;text-overflow:ellipsis; }
td, th { font-size: 9pt; line-height: 160%; }
</style>
<form name="test_from" method="post" action="nileblue_test.asp">
<input type="hidden" name="gub" value="">
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td>&nbsp;</td>
    <td width="1024" align="center" valign="top"><table width="1006" border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td><table width="1006" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="587"><table width="587" border="1" cellspacing="0" cellpadding="0">
                    <tr>
                      <td height="26" colspan="2">
    <input type="button" name="aaa" value="Select" onclick="selectdata();">
    <input type="button" name="bbb" value="Insert" onClick="insertdata();"><input type="text" name="ddd" maxlength="10">
    <input type="button" name="ccc" value="Delete" onclick="deletedata();"></td>
                    </tr>
<%
'@@@ QUERY
SQL = "select aaa from abc"
set rs = DbConn.execute(SQL)

if rs.eof then
%>
  <tr><td width="575" align="center" bgcolor="#FFFFFF">No Data!!</td></tr>
<%
 'response.write "value:NOTHING<BR>"
else
 do until rs.eof
%>
                    <tr><td width="575" align="center" bgcolor="#FFFFFF"><%=rs(0)%></td></tr>
<%
  'response.write "value:"&rs(0)&"<BR>"
  rs.movenext
 loop
end if

%>
<tr><td width="575" align="center" bgcolor="#FFFFFF">*************************************************</td></tr>
<%

'@@@ character set
SQL = "show variables like 'c%'"
set rs = DbConn.execute(SQL)

if rs.eof then
%>
<tr><td width="575" align="center" bgcolor="#FFFFFF">No Data!!</td></tr>
<%
 'response.write "value:NOTHING<BR>"
else
 do until rs.eof
%>
<tr><td width="575" align="center" bgcolor="#FFFFFF"><%=rs(0)%>&nbsp;&nbsp;>>&nbsp;&nbsp;<%=rs(1)%></td></tr>
<%
  'response.write "value:"&rs(0)&"<BR>"
  rs.movenext
 loop
end if

DbConn.close
set DbConn = nothing
%>
                    <tr>
                      <td height="12" colspan="2"></td>
                    </tr>
                  </table></td>
              </tr>
            </table></td>
        </tr>
      </table> </td>
    <td>&nbsp;</td>
  </tr>
</table>
</form>
</body>
</html>
========================소스코드===========================

이 글에 대한 댓글이 총 2건 있습니다.

my.ini 파일에 옵션을 
init_connect="SET collation_connection = euckr_korean_ci"
init_connect="SET NAMES euckr"
default-character-set=euckr
character-set-server=euckr
collation-server=euckr_korean_ci

그리고 데이타베이스나,, 테이블을 만들 때 
CREATE TABLE `Table` (
`idx` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`UserId` VARCHAR(30) NOT NULL
)
ENGINE = MYISAM DEFAULT CHARSET=utf8;

이런식으로 테이블의 캐릭터 타입을 utf8로 하고 사용하니까 잘되던데요. 
원하는게 어떤 것인지는 모르겠으나 참고하시고 좋은 하루 되세요. ^^*

정왕균(아레아)님이 2006-09-01 11:18에 작성한 댓글입니다.

먼저 답변감사드립니다.

db에 입력할때 utf8로 저장되어야 하고.
저장된 데이타(utf8)를 읽어와서 unicode로 변환하여 explorer에 뿌려주려합니다.

위 처럼 설정후 테스트 하였습니다.

insert into Tabel values('좋은 하루');
-->저장성공, 확인결과 utf8형식아님(ansi 형식-문자표에서 확인)
insert into Tabel values(N'좋은 하루');
-->Error Code : 1406 Data too long for column 'aaa' at row 1

입력부터 안되네요... 답변부탁드립니다.

황인상님이 2006-09-01 18:32에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
25784mysql 사용 가능한 메모리 제한 있는지요 [1]
dbman_kpt
2006-08-31
1597
25782mysql을 처음사용하는 사용자입니다. [1]
초보
2006-08-31
1581
25781update 트리거로 다른 테이블 업데이트 후 자기 자신 레코드를 지울 수 있는 방법이 있을까요? [4]
최대현
2006-08-31
2866
25780[질문]web(explorer)로 db에 utf8로 저장하였다가 utf8로 저장된 데이타 로드하기 [2]
황인상
2006-08-31
2409
25779프로시져에서 인자에 default 값 [1]
초보
2006-08-31
1896
25778php 입력값 db에 저장시 로그인된 id값 같이 저장하는법좀 가르쳐주세요.. [2]
해적
2006-08-30
1217
25777mysql 원격접속 (터널링 이용) [1]
새우
2006-08-30
1870
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다