출처 : http://blog.daum.net/gujjy/114


tomcat 으로 mysql 접속시 인코딩이 깨어질 때 체크해야 할 것들.


1. 데이타베이스 및 테이블 생성 시 인코딩 적용

  CREATE DATABASE 디비명 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

  CREATE TABLE 테이블명(
    컬럼들~~~~
)ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='테이블 주석';


2. jdbc 데이터 소스 생성 시 인코딩 적용

  jdbc:mysql://서버주소:포트/디비명?useUnicod=true&characterEncoding=utf8


  &는 xml 에서는 &로 적어준다.


3. web.xml에 인코딩 필터 적용

<filter> 
<filter-name>encodingFilter</filter-name> 
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
<init-param> 
<param-name>encoding</param-name> 
<param-value>UTF-8</param-value> 
</init-param> 
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


4. Get 파라메터 한글 깨짐 적용

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf8" />


  URIEncoding을 적용하면 get으로 한글을 보낼때 깨지 않는다.




저작자 표시
신고

출처 : http://www.cocoadev.co.kr/tag/RSS

HTTP 로 데이터를 전송 받을 때 한글이 깨어지는 경우가 있었다.
아래와 같이 넘어온 데이터의 인코딩을 변경 해 주면 된다

receiveData 는 HTTP 요청 후 받은 데이터(NSData)

NSString *str = [[NSString alloc] initWithData:receiveData encoding:0x80000000 + kCFStringEncodingDOSKorean];
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

다시 NSString으로 변경 해서 출력 해 보면 잘 나온다.

저작자 표시
신고