DB 인코딩 변경 


안녕하세요 고코더 입니다.

PHP를 처음시작 했을때 많이 접하는 상황입니다.
정상적으로 DB연결을 하고 리스트로 뿌려주는데

??? ?? 이런 형태로 글자가 깨져있습니다.



문서 인코딩도 정상적이고
DB입력값도 정상인데 참이상합니다.

해당 오류는 아래 코드로 인코딩만 변경해서 PHP에 심어주면 해결됩니다.
1
2
3
4
5
6
7
<?php
$this->conn = mysqli_connect($this->host,$this->user,$this->password,$this->database,$this->port);
 
mysqli_query($this->conn, "set session character_set_client=utf8");
mysqli_query($this->conn, "set session character_set_connection=utf8");
mysqli_query($this->conn, "set session character_set_results=utf8");
?>
cs

보통은 별다른 설정없이 DB에서 가져오면
라틴어(?)로 되어 있습니다.

이를 euc-kr 이나 utf8로 자신의 인코딩으로 가져오시면 됩니다. 

▼ 이제 정상적으로 보이네요





마무리

영어권 국가였으면..


댓글을 달아 주세요



 database , table , column의 character set 알아보기 


안녕하세요. 고코더 입니다.

mysql 에 인코딩 캐릭터셋을 알아보는 방법을
알려드리려고 합니다.

DB입력시 인코딩에 따라 변환을 해서 입력해야 하는데
캐릭터셋이 모를 경우 

아래 쿼리를 돌려보시면 확인이 가능합니다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT DEFAULT_CHARACTER_SET_NAME        
FROM INFORMATION_SCHEMA.SCHEMATA 
WHERE SCHEMA_NAME = 'DB명';
 
SELECT TABLE_COLLATION 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'DB명';
 
SELECT COLUMN_NAME, CHARACTER_SET_NAME
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = "DB명"
AND TABLE_NAME = "TABLE명"
 
cs


해당 결과 값을 본인의 DB에 실행해보시면
아래처럼 결과 값이 나옵니다.

▼ 데이터베이스 인코딩


▼ 테이블 인코딩



▼ 컬럼 인코딩




마무리

이젠 거의 UTF-8 이겠죠?


댓글을 달아 주세요



크롬 엔코딩 자동감지 기능 삭제, 확장 프로그램을 이용한 인코딩 변경 


안녕하세요. 고코더 입니다. 


개발을 하던 중 크롬에서 아무리 찾아봐도
인코딩 강제 변경 기능이 없습니다. 



▼익스플로러에서는 마우스 오른쪽 버튼을 누르면 쉽게 인코딩을 바꿀 수 있는데요.


이상하게 생각이 들어 구글 포럼에서 알아본 결과
55버전 이후부터 "자동 인코딩 감지" 기능으로 인코딩 지정 메뉴를 삭제 하였다고 합니다.

▼ 해당 페이지에서 자세히 확인 가능합니다.


하지만 한글은 고급 언어라 쉽게 감지가 안되는지 여전히
잘못 감지해 외계어로 보입니다. 
메타 태그나 페이지 인코딩을 우선순위로 인코딩을 지정하는 듯 합니다
결국 메뉴에서 사라진 인코딩을 
확장 프로그램을 통해 변경 해야 겠습니다.

▼아래 URL에 접근해서 "Set Character Encoding" 을 설치 해보겠습니다.


▼추가 버튼으로 설치를 진행 합니다.


▼로컬에서 php파일을 만들어서 한글을 아파치에 그대로 크롬에서 실행하니
외계어로 표출 됩니다. (자동 감지라면서요ㅠ)


▼마우스 오른쪽 버튼을 눌러 설치한 확장 프로그램에서 인코딩을 utf-8로 변경 해보았습니다.


▼역시 제대로 표출 됩니다.



특히 개발시에는 필요한 지정이기에
개발자라면 설치 해놓고 사용 하시면 좋을거 같습니다.



마무리

우리나라도 영어권 국가였으면..







댓글을 달아 주세요



Notepad File encoding


홈에디터 플러스 무한사랑으로 지난 번 파일인코딩 변환 강의를 올렸는데
메모장으로는 변경하는 법을 묻는 개발자님이 계셔서 메모장 버전도 남겨드립니다.
사실 워낙 친숙하게 사용하고 있지만 
나름 인코딩 하는 법이 숨겨져 있습니다. 

오늘은 한번 메모장을 열어봅시다.


▼윈도우키를 누르거나 시작버튼을 눌러 notepad 라고 입력해보세요.
그럼 메모장이검색 됩니다. 한글로 메모장이라고 입력하셔도 문제 없습니다.



▼해당 하는 파일을 열기 하신 후 이번엔 
파일->다른 이름으로 저장을 눌러봅시다.
빠른 단축키는 ALT를 누른 상태에서 S,A를 차례대로 입력합니다.


▼그리고 다른으로 저장하려고 할때 인코딩을 지정하는 화면이 저장 옆에 있습니다.
보통 파일을 열고 저장을 하면 인코등 그대로 저장하지만 다른이름으로 저장시에만
메모장은 인코딩을 변경할 수 있습니다. 일반 사용자도 쓰는 메모장이니 당연한 방법이겠죠



▼ 저장을 누르면 중복 여부를 묻습니다. 예를 눌러주세요.
저희는 인코딩을 바꾸니 그대로 덮어 쓰는게 맞겠네요



▼ 이번에는 다시 위에 방법을 다시 해보면 인코딩이 UTF-8로 변해 있는걸 확인 할 수 있습니다.





+고코더의 추천강의

+EditPlus 에서 파일 encoding을 변경해보세요 






마무리

메모장 말고 에디터 플러스가 기본 메모장이었으면 좋겠네요^^


댓글을 달아 주세요



EditPlus 에서 encoding 변경하기

안녕하세요 고코더 입니다.

소스상에 열심히 인코딩을 지정해도
파일 자체 속성 인코딩을 바꾸지 않으면 여전히 외계어가 뜹니다.
ASP 개발자인 경우에는 이런 문제가 빈번합니다. 

그래서 오늘은 
에디터플러스에서 파일 인코딩을 변경하는 방법을 알아보겠습니다.


▼ 원하는 파일을 오픈한 후에
문서->파일 인코딩 -> 인코딩 변환을 눌러보자
단축키로는 ALT를 누른 상태에서 D, D, C를 누르면 빠르게 접근 가능하합니다.




▼해당 창에서 UTF-8을 설정하고 확인을 누릅니다.


▼저장 전까지는 당연히 해당 파일 인코딩은 변하지 않았다. 저장을 누른 후에 



▼오른쪽 아래에 현재 파일 인코딩 상태를 확인하자 정상적으로 변경 되었다면 성공 



에디터 플러스의 장점은 ansi, euc-kr, utf-8에 상관없이 한글을 깨트리지 않고 파일을 오픈시킵니다.
다른 언어 파일들도 다른 IDE로 파일을 오픈하였는데 한글이 깨지는 상태를 확인하면
에디터 플로스로 인코딩을 바꾸면 가장 깔끔하게 변경이 가능합니다.


마무리


에디터 플러스로 인코딩 속성을 변경하기 가장 좋습니다.


댓글을 달아 주세요



winSCP 한글이 깨져 있을때 UTF-8로 설정


winSCP로 파일을 다운로드 받았는데 안쪽에 한글이 뭉개져있는 경우가 있다. 이같은 경우는 인코딩이 안맞는 경우가 있습니다. 한글은 참 귀찮습니다. 
UTF-8로 해야 정상적으로 글자를 볼 수 있는데 기본 설정은 ANSI 인경우가 많습니다.
이럴 경우 winSCP에서 urf-8로 인코딩을 변경하면 해결 하면 됩니다.



▼서버에 test.txt안에는 "가나다라마바사" 라는 test.txt를 업로드 하였고 이것을 확인해보았습니다.
역시나 요상한 글자가 보입니다.
default encoding 이 ANSI(Euc-kr) 일 경우에는 이렇게 보일 수밖에 없습니다. 
그래서 utf-8로 셋팅해보겠습니다.
UTF-8 : 한 글자를 나타내기 위해 4바이트까지 사용하여 모든 언어를 표현 할 수 있다.


▼option>peferences 혹은 단축키 ctrl+alt+p를 누르면 옵션창이 뜰것입니다.

▼그리고 Editors > Default encoding 을 클릭하여 utf-8을 선택

▼이제 정상적인 모양으로 한글이 노출 되었습니다.



!!! 한가지 주의할점은 UTF-8로 인코딩을 변경하여 다운로드 해야 로컬에도 utf-8의 정상적인 파일이 다운로드 됩니다.
Ansi인 상태에서 한글이 들어간 파일을 받아 열어보면 글자가 깨진채로 파일이 저장된다.



마무리

우리나라도 영어권 국가였음 얼마나 편했을까 ㅠㅠ





댓글을 달아 주세요


ASP 인코딩 설정 오류 한글 깨짐 UTF-8로 바꾸기


안녕하세요 고코더 입니다.

ASP를 처음 접한 개발자분들이 단골로 걸리는 문제입니다.

▼코딩 후에 웹상에서 한글이 이상한 문자로 보이는 문제 일 경우


▼해당 소스를 문서 맨위에 코딩하시면 됩니다
1
2
3
4
5
6
7
8
<%@Language="VBScript" CODEPAGE="65001" %>
<%
 
  Response.CharSet="utf-8"
  Session.codepage="65001"
  Response.codepage="65001"
  Response.ContentType="text/html;charset=utf-8"
%>
cs




그리고 문서 자체 인코딩 설정도 UTF-8로 해주시면 됩니다.^^



+고코더의 강의추천

파일 인코딩을 변경하는 방법을 배워보세요




마무리


개발은 이제 인코딩은 UTF-8 이상으로 하시길 바랍니다. 


댓글을 달아 주세요