-
[CentOS 7] 서버 및 터미널, 파일인코딩 동일하게 설정하여 한글사용하고 한글파일보기(euc-kr 이든, utf-8)Linux server(CentOS 6.x, 7.x) 2019. 5. 15. 14:14
서버와 서버의 원격접속을 도와주는 터미널의 인코딩을 동일하게 맞추어도 한글이 계속 깨지는 파일이 존재,;; 그런갑다 하고 신경안쓰고 넘어 갔던적이 많은데 더이상은 안될것같아.... 정확하게 확인 후 블로그에 게시한다.
1. 서버 인코딩 확인법
# locale : 현재 쉘의 인코딩상태 출력
echo $LANG : root든 , 사용자 계정이든 각각의 인코딩 방식을 다르게 지정가능하여 유저별로 들어가서 확인해야한다. 참고로 사용자계정의 ./.bash_profile 파일에 인코딩설정이 안되어 있다면 아래 설명하는 파일에 설정된 인코딩을 따라갈것이고 ./.bash_profile에 지정을 하면 지정된 인코딩이 지정된다.
변경방법으로는 크게는 두가지가 있다.
2. 서버 인코딩 변경법
2.1 export LANG="ko_KR.UTF-8" : 적용하면 명령어를 적용한 쉘에서 바로적용되지만 해당 쉘을 끄고 다시 접속했을시 유지 되지 않는다.
2.2 /etc/locale.conf : 해당 파일에 접속하여 내용을 변경한다. 그래야 새로운 쉘을 열어도 적용된다.
2.3 /etc/profile : 해당 파일에 명령에는 export LANG="ko_KR.UTF-8" 삽입하여도 쉘이나 리부팅시에도 내용이 변경되지 않고 유지된다. 쉘 재접속 시, 리부팅시 해당 파일을 읽으면서 쉘이 실행이 되기 때문에 locale.conf보다도 더 강력하다.
3. 터미널툴은 여러 툴이 있으니 자기가 사용하는 툴 인코딩 변경을 알아서 확인하기 바란다.
4. 파일의 인코딩 확인법
4.1 file -bi <파일명>
ex) # file -bi dockerfiletest02
text/x-shellscript; charset=iso-8859-1 <-- "euc-kr"과 같다5. 파일의 인코딩 변경법
5.1 iconv -c -f <기존인코딩> -t <변경인코딩> test.php > test2.php
다음은 원래 euc-kr인코딩이었던 test.php 를 utf-8로 변환하여 test2.php 로 저장
ex) > iconv -c -f euc-kr -t utf-8 test.php > test2.php
# file -bi test2.php
text/html; charset=utf-8
**만약에 인코딩상태가 charset=unknown-8bit <- 이상태면, CP949 인 인코딩상태라는 것을 참고하자
**이렇게 세가지만 동일하면 무조건 한글은 깨지지 않고 서버상에서는 확인이 가능합니다.
** 톰캣로그를 깨지는 이슈시 톰캣 server.xml에 들어가 인코딩을 확인하여 맞춰야한다.
'Linux server(CentOS 6.x, 7.x)' 카테고리의 다른 글
[CentOS 7] 방화벽 설정 명령어 (0) 2020.02.18 [CentOS] vim 여러줄 주석처리하기 (0) 2020.01.10 [CentOS] 리눅스 쉘에서는 명령이 실행되는 데 crontab에서는 실행이 되지않을때 대처법 (0) 2019.12.23 [CentOS 7] nginx, 설치부터 버추얼호스트 설정, 톰캣연결, SSL인증서 적용하기 (0) 2019.05.10 [CentOS 6.x] 서버 본딩설정 (0) 2019.04.18