리눅스에서 text 인코딩 한꺼번에 바꾸기

Posted at 2008/04/06 21:59 // in Linux // by 엔신
필자는 최근까지 인코딩으로 EUC-KR 을 절대적으로 고수해왔다.
하지만 최근 ajax에 빠지면서 UTF-8 으로 바꿔야 할 필요성을 절실히 느껴서 서버 셋팅을 몽땅 UTF-8 으로 갈아 엎게 되었다.

하지만 문제는....

기존에 개발했던 스크립트는 모두 EUC-KR 로 되어 있어서 한글이 모두 깨지고 주석 달아 놓은것도 알아볼 수 없는 상황이 되었다.

약간의 구글링 끝에 좋은 해결 방법을 발견해서 소개한다.

GNU 에서 배포하는 recode 라는 작은 프로그램이 있다.
(http://www.gnu.org/software/recode/recode.html)

필자는 우분투 리눅스를 사용하고 있는데 설치는 3초도 안걸렸다.
apt-get install recode :)

사용방법은 매우 간단하다.
쉘에서 다음과 같이 입력하면된다.

recode -v <소스인코딩>...<출력인코딩> <파일명>

가장 마음에 드는 점은 와일드카드 (*) 를 지원해서 파일들을 한꺼번에 인코딩 변환이 가능하다.

recode -v EUC-KR...UTF-8 *.php

recode -l 을 치면 지원하는 모든 charset 을 볼 수 있다. :)

http://www.82i.com/@/zboard.php?id=faq&page=3&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=17

centos에서도 설치가능 yum install recode


이올린에 북마크하기
2008/04/06 21:59 2008/04/06 21:59

SSH클라이언트 접속시 한글깨짐문제 - /etc/sysconfig/i18n

Posted at 2008/04/06 21:06 // in Linux // by 엔신

SSH클라이언트 접속시 한글깨짐문제 - /etc/sysconfig/i18n

 

흠..

별로 신경 안썼었는데 SSH접속 시 한글이 깨지는 경우를 볼 수 있었다.

putty는 안그런다고들 하지만.. 내경우엔 Zterm을 쓰니.. (습관이 무섭다;)

 

암튼 어쩔수없이 설정을 잡기로 맘먹고..

 

/etc/sysconfig/i18n

 

>> 설정내용 (EUCKR용) =============================================

LANG="ko_KR.eucKR"
SUPPORTED="en_US.iso885915:en_US:en:ko_KR.eucKR:ko_KR:ko"
SYSFONT="lat0-sun16"
SYSFONTACM="iso15"

 

====================================================================

손을 댔는데.. 흠.. 역시 난 EUC-KR이 싫다.

뭐 EUC-KR이 기필코 필요하다면 써야하니.. 일단 주석처리..ㅋㅋ

다시 설정을 잡아야지..


>> 설정내용 (UTF-8용) ==============================================

LANG="en_US.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.UTF-8:ko_KR:ko"

SYSFONT="latarcyrheb-sun16"
====================================================================


한글 자알~나오고있다ㅋㅋ

   

이올린에 북마크하기
2008/04/06 21:06 2008/04/06 21:06

UTF-8 지원 제로보드4

Posted at 2008/03/11 15:58 // in Linux // by 엔신

이 프로그램은 본 홈페이지를 작업하며 생성된 제로보드의 수정본입니다.
프로그램의 라이센스와 버전은 존재하지 않으며 이 제로보드를 사용하여 발생하는 문제에 대해 본인은 어떠한 책임도 지지 않습니다.

특징1. 제로보드가 UTF-8을 지원할 수 있도록 파일포맷 및 일부코드가 수정되었습니다.
2. 사용자의 선택에 따라 제로보드의 언어를 바꿀 수 있습니다. (현재는 한국어, 일본어, 영어만 지원됩니다.)
3. 한번 선택된 언어는 다음번 접속에도 언어정보를 유지할 수 있도록 언어정보를 쿠키에 저장합니다.
4. 페이지별 properties가 존재하여 페이지 로드시 언어셋 문자열을 같이 로드하게 되므로 세션의 낭비가 적습니다.
5. 언어의 추가적인 확장이 용이합니다. (페이지별 properties가 존재하여 페이지별 작성이 가능합니다.)
6. 사용된 제로보드 버전은 4.1 pl8 입니다.

[UTF-8 지원 제로보드4]


원래 이거, 노출 안할라했는데,

생각해보니 나도 네이버 블로그라던지 카페에서 유용한 자료를 많이 얻었기에 보답 차원에서...


유의사항 : 버그패치만 하고 있습니다. (-_-)

이올린에 북마크하기
2008/03/11 15:58 2008/03/11 15:58

APM 에서 UTF-8 사용하기

Posted at 2008/02/25 23:52 // in Linux // by 엔신

아래글은 알짜초보님의 글로써 새글쓰기가 안돼신다고 댓글로 달려 있던것을 발췌하여 컬럼란으로 이동하였습니다. 원문은 http://www.powerdb.net/?inc=read&aid=24448&criteria=mysql&subcrit=qna&id=&limit=20&keyword=&page=1" 에서 4번째 댓글입니다. --[백록화]


----------------------------------------------------------------------------------

종래에는 홈페이지가 자국인들만 이용할 것을 예상하고 제작하므로써 외국인 즉, 비한글 사용자들에 대한 서비스를 미쳐 염두에 두지 못하므로써 한글이 ?????$%^&( 처럼 깨져 보이는 무지함을 보였던 것이 사실입니다.


이제는 홈페이지 제작도 유니코드(UTF-8) 인코딩 방식이 세계적 추세이며 이러한 추세에 맞추어 MySql도 기본언어를 utf8(UTF-8 인코딩) 방식으로 변경하였으므로, 홈페이지를 종래 euc-kr 등 한글로만 표기하던 방식도 UTF-8 인코딩 방식으로 업데이트해야 할 때 입니다. UTF-8 인코딩 방식은 한국어, 일어, 중국어, 태국어, 아랍어 등 만국어 표기가 가능한 방식입니다.

APM에서 UTF-8을 구현하려면 꽤 많은 부분을 수정해야 합니다 .
다음은 APM에서 UTF-8 구현 방법과 소스코드를 첨부합니다.
적용 환경
----------------
OS : WinXP SP2
Apache : httpd-2.0.52-3
PHP : php-5.0.3
MySQL : mysql-4.1.11
----------------

1. apache 환경파일 편집 (httpd.conf)
2. php 환경파일 편집 (php.ini)
3. mysql 환경파일 편집 (my.cnf)
4. apache, mysql 서비스 재시작
5. mysql에서 캐릭터셋 확인 및 디비생성
6. php 소스코드에 mysql_query("set names utf8;"); 함수 추가
7. php 소스에 한글문자열이 있으면 파일저장할때 UTF-8 파일형식으로 저장
8. 웹브라우즈의 보기-인코딩-UTF-8로 선택

1. /etc/httpd/conf/httpd.conf 에서 캐릭터셋 수정
/*------------
AddDefaultCharset UTF-8

2. /etc/php.ini 에서 캐릭터셋 수정
/*------------
;default_charset = "iso-8859-1"
default_charset = "utf-8"

3. /etc/my.cnf 에서 캐릭터셋 수정
/*------------
[client]
#password = your_password
default-character-set=utf8

[mysqld]
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci

[mysql]
default-character-set=utf8

4. 환경변수를 모두 수정후 apache 및 mysql 서비스 재시작
/*------------

5. mysql에서 캐릭터셋 확인
/*------------
# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 247 to server version: 4.1.10a

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use test
Database changed
mysql> show variables like 'c%';
+---------+-----------+
| Variable_name | Value |
+---------+-----------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
| concurrent_insert | ON |
| connect_timeout | 5 |
+---------+-----------+
12 rows in set (0.00 sec)

* MySql에서 데이터베이스 생성
mysql>CREATE DATABASE 디비명 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

http://database.sarang.net/?inc=read&aid=24452&criteria=mysql&subcrit=&id=&limit=&keyword=&page=
이올린에 북마크하기
2008/02/25 23:52 2008/02/25 23:52

Daum 유니코드(UTF-8)에 도전하다

Posted at 2008/02/25 23:12 // in Ambiguous // by 엔신

지난 주 목요일에 Daum의 커뮤니티 섹션(카페, 블로그, 플래닛)의 개편이 있었습니다. 그냥 보기엔 일상적인 디자인과 콘텐츠 개편으로 보입니다만 실제 중요한 이슈 한 가지가 숨겨져 있습니다. 그것은 다름 아닌 모든 페이지가 유니코드(UTF-8) 인코딩 지원으 로 변경된 것입니다. 국내 웹 페이지들과 데이터 대부분은 지금까지 한글 완성형 코드(KSC5601)를 표현하는 EUC-KR 인코딩 방식을 주로 사용해 왔습니다. 따라서 UTF-8 지원이 대규모 웹 서비스에서 이루어진 것은 꽤 고무적이라고 볼 수 있습니다.

물론 Daum에서 UTF-8을 사용한 첫 서비스는 아닙니다. 협력 사진 공유 서비스인 Daum Pie가 신규 서비스로 개발될 작년 처음 UTF-8을 도입했습니다. 이번 커뮤니티 섹션 전체 적용에서는 이 사례와 경험을 기초로 작업해서 얻은 성과 입니다. 물론 개별 카페, 블로그, 플래닛과 데이터 전체가 전환된 것은 아니고 탑 섹션만 바뀌었지만 향후 UTF-8으로 가기 위한 초석을 쌓았다고 생각합니다.

UTF-8과 EUC-KR에 대한 장단점 문제는 오랫동안 논란이 되어 온 문제입니다. UTF-8 인코딩이한국어만 주로 표시하는 국내 웹 사이트에는 부적절하다는 이유도 있기도 합니다. 그러나, EUC-KR을 사용하면 ‘아햏햏’, ‘붺’ 같은 단어나 ‘다’ 같은 조선 시대 고어(古語) 등 우리말인데도 표시할 수 없다는 문제점이 있습니다. 이런 이유로 네이버 국어 사전은 UTF-8을 인코딩을 사용하고 있습니다. 뿐만 아니라 세계화 시대에 다른 외국어를 섞어 써야 하거나 다른 언어 운영체제(OS)에서 폰트 없이도 한글을 볼 수 있게 하려면 UTF-8이 꼭 필요하다고 하겠습니다.

해외 웹2.0 기업과 서비스들에서 공통적으로 나타나는 열 가지 기술 요소에 UTF-8이 들어가 있습니다. 글로벌 서비스를 지향하고 모든 나라와 문자를 표현 하게 하기 위한 수단으로 UTF-8은 매우 기본적인 요소입니다. 블로그 검색 서비스인 Technorati의 경우 비영어 콘텐츠가 60%가 넘고 있습니다. 만약 Technorati가 ISO-8859-1 인코딩 서비스를 썼다면 그런 컨텐츠를 수집하지 못했겠죠.

DB 용량이나 데이터 전환 비용과 같은 기타 문제를 떠나서 개발자들이 UTF-8으로 전향하기 가장 힘든 것이 바로 손에 익지 않은 개발 환경 때문입니다. 그건 마치 웹 표준 개발 방식으로 전향하는 문제랑 비슷합니다. 한번 익히고 세팅 한번만 하면 쉬운 문제이지요. IT산업이 글로벌 무한 경쟁으로 나가는 요즘 어렵지만 기본에 좀 더 충실해 지는 것은 우리가 향후 경쟁에서 싸워 이기는 데 큰 도움이 될 것입니다.

p.s. 이 프로젝트를 위해 고생한 mtgear에게 심심한 사의를…
p.s. 네이버 메일 UTF-8 전환도 이루어 지고 있다는 소식. 변화의 모습이 보기 좋습니다. 간발의 차네요.


http://channy.creation.net/blog/?p=350

좋은내용

이올린에 북마크하기
2008/02/25 23:12 2008/02/25 23:12