질문이 깁니다..천천히 보시고....조언을 바랍니다..^^
문제점은 Data 저장시 UTF8로 저장이 안됩니다..(실제 칼럼에 unicode값으로)
환경은 Windows, ASP, Mysql 5.0.22 이구요.
Connection 은 ODBC로 연결을합니다(최신버전이구요.)
한글,타언어 등 확장문자를 사용 해야 하기때문에 UTF8을 사용 하려고 합니다.
위와 같은 환경으로 해서 작업을 하는데..
실제 데이터가 ANSI형으로 들어가거나 깨집니다.
예를 들어 ? 라는 글자(라틴어)를 Insert 할때
실제 Execute 를 하기전에 SQL을 찍어보면 insert into abc values('?') 와 같이 제대로 보입니다.
그런데 테이블에 들어간 데이터를 보면 '?' 로 보이구요.
==> 이런 글자가 깨지네요(하단 이미지를 참조하세요)
asp 파일은 ultraedit로 작업 했구요..파일설정을 unicode로 했습니다.
파일 저장시 UTF-8로 하거나 파일-변환-ASCII를 UTF-8로(unicode편집) 메뉴로도 변경했구요..
소스코드 상단에
도 넣었고
도 추가 했습니다.
전부 UTF-8 환경이구요...(제 생각엔)
MYSQL 5.0.22이고 install시 UTF-8로 셋팅했습니다. my.ini 내용은
[client]
port=3307
[mysql]
default-character-set=utf8 <- 해보다가 안되서 제가 추가로 셋팅했구요
[mysqld]
port=3307
basedir="C:/Program Files/MySQL/MySQL Server 5.0/"
datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/"
default-character-set=utf8 <- 여기도....
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=9M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=18M
key_buffer_size=11M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=18M
innodb_log_file_size=10M
innodb_thread_concurrency=8
show variables like 'ch%' 내용은
character_set_client >> latin1 |
character_set_connection >> latin1 |
character_set_database >> utf8 |
character_set_filesystem >> binary |
character_set_results >> latin1 |
character_set_server >> utf8 |
character_set_system >> utf8 |
입니다.
그래서 insert 전에 DbConn.execute("set names utf8") 이런식으로 변경을 하면
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 |
이렇게 됩니다.
위 두가지 상황에서 다 해봐도 마찬가지더군요.
제가 생각한 부분은 ODBC로 연결해서 Insert 처리시 제대로 되지 않는것 같습니다.
다른 원인은 잘 모르겠구요.
해결 방법을 알고 싶습니다.
반드시 UTF8형식으로 제대로 저장을 하고 싶습니다...
-------------------------------------------
1차 수정
여기 게시판도 UTF8을 지원하지 않네요.
참고로 윈도우즈 문자표에서 다음과 같은 글자로 테스트를 한겁니다.
위에 나오는 내용중 파란색 굵은 ?가 아래 글자입니다.
-----------------------------------------
2차 수정
저장 하고보니 이미지 추가가 안되네요..
말로 설명을 드리면
윈도우즈 시작버튼 - 프로그램 - 보조프로그램 - 시스템도구 - 문자표를 띄우시고
굴림폰트를 선택후 고급보기 체크후에 문자집합에 Unicode를 선택하면
라틴어 하나입니다..알파벳에 위에 특수표시가 있는 문자들이죠..
|