지금 utf-8으로 변경하려합니다. > 십년전오늘

십년전오늘

10년전 추억의 책장을 넘기며

지금 utf-8으로 변경하려합니다. 정보

지금 utf-8으로 변경하려합니다.

본문

euc-kr로 하니 트위터에 전송이 안되는군요 크흑...

변경해도 안되면 ㅡㅡ







삐뚤어질테다
  • 복사

댓글 전체

phpmyadmin을 바꿔서 될일이 아니고 DB캐릭터셋 자체를 바꿔야합니다

DB를 euc쓰고 캐릭터셋만 utf쓴다던가 그런방법도 있지만..
캐릭터셋은 맞추는게 좋습니다

그리고 euckr에서도 iconv로 넘기면 트위터 전송가능해요
iconv로 인코딩을 바꾸면 전송하거나 받는데는 문제가 없습니다.
전각문자를 쓰는 아시아 문자들은 어쩔 수 없습니다.
컴퓨터 자체는 숫자와 몇개의 특수문자(반각문자) 그리고 알파벳 외에는 모두 반각 특수문자의 조합으로 인식합니다.
(여기서 한글 조합형과 완성형은 전혀 다르다고 말하는 분이 계시다면 부가 설명은 매우 길어집니다.)
컴퓨터는 EBCDIC 외에는 모든 문자가 특수문자(컴퓨터가 기본으로 인식 할 수 없는)입니다.
기존의 전각문자들은 2바이트 완성형을 사용했는데 UTF(and 윈도우의 유니코드)는 3바이트 완성형 코드입니다.
(조합형은 메모리 상주하는 특수한 프로그램을 실행한 상태에서 두개의 특수문자가 연속으로 나타 났을 때 그것을 한글 형태로 변환하는 형식이였습니다. 대표적인 특수한 프로그램에는 hbios.exe라고 있었습니다. 아레아한글도 초창기에 조합형이였습니다. IOS는 Input Output System입니다. BIOS는 Basic Input Output System입니다.)
문자 혹은 캐릭터라고 하지 않고 코드라고 합니다.
스페셜 코드입니다.
UTF는 한글뿐만 아니라 일본어, 한문, 아랍어등 영어권 외의 거의 모든 나라에서 사용하고 있어 공용 언어 인코딩으로 자리잡았습니다.
euc든 utf든 컴퓨터 입장에서는 어차피 언어가 아니라 특수문자입니다.
우리는 그것을 어떻게 조합하고 풀이하느냐에 따라 각 나라의 언어에 맞게 사용하고 있습니다.
애석하게도 PC에서 2바이트 언어로 데이터를 전송 할 때는 1바이트 특수문자로 분해해서 전송합니다.
(euc에서 전송하면 한글 형태를 유지하는데 utf로 전송하면 %문자로 문자로 전송한다고 말씀하시면 여기도 부가 설명이 길어집니다. 눈에는 그렇게 보이지만 LAN카드를 벗어나기 전 운영체제에서 이미 패킷으로 변환하는 순간 그것은 코드 형태로 분해 됩니다.)
그러니 2바이트의 euc 서버나 클라이언트에서 문자를 전송 했는데 3바이트 언어셋을 사용하는 utf서버에서 문자를 받으면 깨져버립니다.
그래서 이것을 하나로 통일해야 하는데 세계적으로 이미 UTF를 사용 하고 있으니 우리도 UTF 언어셋을 따라갈 수 밖에 없습니다.
트위터, 페북, 마이스페이스, 유트브, 구글 등 글로벌 IT기업들이 모두 UTF 환경인데 그것들이 제공하고 있는 API에서 자유로울 수 없는 우리는 우리나라에서만 사용할 사이트라고 euc를 고집한다면 고집하고 있는 환경에 고립 될 수밖에 없습니다.
옛날엔 운영체제(MS-DOS, UNIX)가 한글을 위한 언어팩 공간을 따로 제공하지 않았습니다.
그래서 EBCDIC(ASCII의 확장) 128~255번의 특수문자를 조합하여 우리 한글을 표현 할 수밖에 없었습니다.
당시에 MS-DOS가 확장언어팩 공간을 전형 제공하지 않았던 건 아닙니다.
그 나라의 언어가 들어갈 정도의 공간은 제공해 주었습니다.
우리나라는 한글, 한문 일부분, 일본어 일부분 표현이 가능했습니다.
DOT 프린터도 마찬가지였습니다.
그 좁은 언어팩 공간에 한글, 한문, 일본어까지 저장하려고 하니 완성형 한글을 저장할 공간이 많지 않아 표현할 수 있는 문자가 제한 됐습니다.
(여기서 저장공간이 작으면 디스크 용량을 큰걸 쓰면 되지 않겠냐고 하시면 또 설명 길어집니다.)
지금은 완성형이 당시의 조합형 한글 모두를 표현 할수 있습니다.
3바이트 유니코드로 확장 되었고 요즘 나오는 운영체제 언어팩이 기본으로 한글 영역을 제공하고 있기 때문에 굳이 euc를 고집할 필요는 없습니다.

euc에서 트위터로 문자 전송이 원활하지 않다고 하셨는데 iconv로 언어셋을 변경 하신 후 전송을 시도하시면 될거 같습니다. ^^
© SIRSOFT
현재 페이지 제일 처음으로