070-8260-2526

평일 오전 9시 ~ 오후 6시
단위농협

352-0331-1626-83

예금주:강만수테크넷코리아


자주묻는 질문
홈 > 고객센터 > 자주묻는 질문

조회수 6429
질문 vi 에디터에서 utf8, euc-kr 전환하기
vi 에디터에서 utf8, euc-kr 전환하기 리눅스
by indirock 2012/01/11 09:05 indirock.egloos.com/3791689 덧글수 : 0
[vi 에디터 utf8 <-> euc-kr 웹문서 encoding 전환하기] 원문: (http://onlyu.blog.me/60123862837)
vi로 웹문서를 열어 보면 한글이 깨어져 있고

<meta http-equiv=Content-Type Content="text/html; charset=euc-kr">이 보인다면

리눅스 콘솔창에 env 해 볼때 LANG=ko_KR.UTF-8 으로 나온면 utf8 환경입니다.

Q) 그럼 한글이 깨어져 보이는 utf-8 시스템 환경에서 euc-kr 웹문서를 제대로 볼 수 없는 것인가?

A) 리눅스 환경이라면 vi 환경설정 파일인 .vimrc 파일에 set fileencodings=utf8,euc-kr 를 추가하면 문서를 열때 자동적으로 fileencoding이 utf8인지 euc-kr 인지 encoding에 맞게 열고 저장을 합니다.

계정 로그아웃(재접속)하지 않고 vi 설정을 적용할려면 콘솔에서 source .vimrc 하고 엔터키를 누르면 됩니다.

Q) 그럼 euc-kr 파일 웹문서를 utf8 파일로 변경을 하고 싶다면 어떻게 하죠?

A) vi로 파일을 열고 나서

:set fileencoding=utf-8

:w

하면 됩니다. 저장 후 종료를 할려면 :wq 엔터를 하면 됩니다.

반대로 utf8 문서를 euc-kr로 변경 할려면 :set fileencoding=euc-kr을 하면 됩니다.

 

euc-kr 웹문서를 utf8로 변경 하고 저장 했다면

<meta http-equiv=Content-Type Content="text/html; charset=utf-8">

로 하지 않으면 웹브라우저에서 확인시에는 다시 한글이 깨어져 보이겠죠.

 

Q) vi 에디터로 열지 않고 euc-kr 웹문서를 utf8로 변경 할려고 합니다. 어떻게 해야 하죠?

A) iconv 명령어로 가능합니다.

iconv -f euc-kr -t utf-8 euc-kr.html --output utf8.html

or

iconv -f euc-kr -t utf-8 euc-kr.html > utf8.html

Q)한개 파일이 아니라 여러개의 html 파일을 동시에 변경 할려면 어떻게 하죠?

백업 파일처럼 utf8.html로 할 필요없이 그냥 utf-8 파일로 변환 되면 좋겠는데요??

A)

변경을 원하는 경로로 이동을 하고 아래와 같은 명령어로 한방에 그럼 변경해 보겠습니다.

cd /web/files

for I in ./-.html ; do iconv -c -f euc-kr -t utf-8 $I > $I.tmp && mv $I.tmp $I ; done

작업 완료 전에는 무조건 백업본을 유지하는 것이 좋습니다. 그냥 원본폴더를 tar로 묶어 두면 되죠.

시스템 환경에 따라 작업 환경에 따라 charset encoding은 테스트 작업을 하고 본격적으로 진입 하는 것이 바람직합니다. 

Q) recode 명령어로 한번에 변경 할 수 있다고 하는데 어떻게 하나요?

A) 먼저 시스템에 recode 명령어를 사용할 수 있는지 확인 해야 하는데

rpm -qi recode 해서 아무것도 안나오면 설치 해야합니다.

yum install recode recode-devel 또는 rpm을 찾아서 설치 하거나

http://recode.progiciels-bpi.ca/index.html 접속해서 파일을 받아서 설치합니다.

recode 명령어로 얼마나 많은 charset 변경을 할 수 있는지 확인은

recode -l 로 살펴 보면 됩니다. 그럼 euc-kr에서 utf-8로 변경 명령어는 아래와 같습니다.

recode -v <소스 CHARSET>...<변환 CHARSET> <파일명>

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

 

Q) php에서 특정 문자열만 euc-kr 또는 utf8로 할려면 어떻게 하죠?

A) iconv 함수를 이용하면 됩니다.

iconv("euc-kr", "utf-8", $str); // euc-kr을 utf8로 encoding 됩니다.

iconv("utf-8", "euc-kr", $str); // utf8을 euc-kr로 encoding 됩니다.

참조 URL : http://www.php.net/manual/en/function.iconv.php

 

Q) java,jsp에서 문자열 encoding 전환은?

A)

StringBuffer szBuffer = new StringBuffer(); String str = new String(szBuffer.toString().getBytes("UTF-8"), "EUC-KR");

http://download.oracle.com/javase/1.5.0/docs/guide/intl/encoding.doc.html

여전히 한글이 깨어진다면 아래 상황을 체크 해 봅니다.

1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
2. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
3. <Connector URIEncoding="UTF-8" connectionTimeout="10000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/> 4. URIEncoding 세팅을 해 놓아도 get/post 메소드로 넘어갈때 Parameter값 한글이 깨어질때는
SetCharacterEncodingFilter.java 파일을 $CATALINA_HOME/common/classes (톱캣) 또는 WEB-INF/classes (개인환경) 밑에
javac SetCharacterEncodingFilter.java -d .
컴파일을 하고 web.xml 파일 encoding 필터 세팅이 되어 있는지 확인 해 봅니다.
* utf8 톰캣이 아니라면 톰캣 4.x 은 기본적으로 8859_1로구동이 됩니다. export LANG=en_US.iso8859-1
export LANG=ko_KR.eucKR 으로 한다면 charset은 euc-kr로 구동이 됩니다.
추가 옵션으로 export CATALINA_OPTS='-Dencoding.default=euc-kr -Dfile.encoding=euc-kr'

 

Q) 윈도우 노트패드(notepad)에서 encoding 변환 작업은 할 수 없나요?

A) 윈도우에서 작업 가능한 무료 에디터 notepad++를 소개 해 드립니다.

http://notepad-plus-plus.org/ 접속 후 다운로드(DOWNLOAD) 메뉴에서 받으시면 됩니다.

윈도우에서 생성한 ANSI Encoding 파일을 상단 메뉴 Encoding 에서

Convert to UTF-8 without BOM (UTF-8 형식으로 변환 BOM 없음) 으로 선택하시면 UTF-8 Charset 으로 변환이 됩니다.



(notepad++ 메뉴를 한글로 변경 Settings > Preferences > General Localization 셀렉터 항목에 한국어를 선택하면 됩니다.)

(추가)

Q) 여러 사이트에서 넘어 오는 값이 각각 다른데 utf8 인지 euc-kr 인지 어떻게 알죠?

A) php 경우라면 mb_detect_encoding($str); 로 찍어 보면 압니다.

하여 각각 원하는 encoding을 iconv로 변환을 해 주면 됩니다.

 

키워드 검색글
[리눅스] Locale from 낮엔 해처럼 밤엔 달처럼
하면 현재 디렉토리에 로케일 데이타가 ko_KR.euckr/* ko_KR.utf8/*로 생성되고# localedef -cvi ko_KR -f EUC-KR로 바꿔주면 영어로 나올 것이다.[출처] http://rhdxmr.tistory.com/45, http://kldp.org/node/39014
[mysql] mysqldump 확장 from 스스로에게 엄격하게, 타인에게 온화하게
-p1111 abc > dumpfile.sql· 언어셋이 utf8 서버에서 euckr로 변환하여 dump하기shell> mysqldump -u abc -p1111 abc --default-charset=euckrmeans that if you want to include in an existing backup script also the triggers and stored
MySQL Tip from 하나두리
utf8 또는 euckr 을 지정하는것이 좋을것이다. 그런데 이 default-character-setmysql> grant all privileges on*.* to root@localhost identified by xxxxxutf8 설정mysql 4.1 에서는 /etc/my.cnf 등에서[service:mysqld],
vi 에디터에서 utf8, euc-kr 전환하기 from indirock's story
StringBuffer() String str = new String(szBuffer.toString().getBytes(UTF-8),* utf8 톰캣이 아니라면 톰캣 4.x 은export LANG=en_US.iso8859-1 export LANG=ko_KR.eucKR 으로 한다면 charset은 euc-kr로 구동이 됩니다.추가
..SQL] mysql configure 옵션(mysql-5.0.77 ... from 변군이글루
[VAR=VALUE]...To assign environment variables (e.g., CC, CFLAGS...),cp852 cp866 cp932 dec8 eucjpms euckr gb2312 gbk geostd8greek hebrew hp8 keybcs2 koi8rmacromansjis swe7 tis620 ucs2 ujis utf8--with-collation=COLLATIONDefault