1.

 

안드로이드 adb가 최신버전 우분투 64bit 버전에서 안도는 문제 :

 

ia32-libs 설치

 

sdk의 adb가 32비트 라이브러리로만 돌아가서 그럼.

 

2.

 

2.1.

/etc/mysql/my.cnf 에 추가

 

 

[client]
default-character-set=utf8

[mysqld]
character-set-client-handshake=FALSE
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

[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8

 

2.2.

테이블 생성 시 문자셋 지정

 

CREATE TABLE `test`.`test` ( `test_id` int(11) NOT NULL AUTO_INCREMENT, `test_name` VARCHAR(30) NOT NULL, PRIMARY KEY (`test_id`) ) ENGINE = MyISAM DEFAULT CHARSET=utf8 COMMENT = 'test';  

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크
2011/11/18 15:09 2011/11/18 15:09
Tag //

0.

 

옛날에는 사람보다 컴퓨터가 귀했기 때문에 쓸데없는 작업을 위해 컴퓨터의 연산능력을 사용하는 것은 터부시되었다고 한다. 포탄의 탄도 계산을 위해 중견 도시의 전력 사용량에 맞먹는 전기를 빼먹던 초기 컴퓨터 시대를 생각하면 그럴법도 하다. 지금은 NASA에서 사람을 달로 보내기 위해 필요했던 연산 능력을 누구나 손에 들고 다니면서 닭을 돼지에게 날리는데 쓰는 시대이기 때문에 사람이 하기 귀찮은 일은 컴퓨터에 맡기는 것이 미덕이 되고 있다.

 

그런 의미에서 텍스트 파일 포맷의 스프레드시트 파일인 csv를 읽어서 db에 때려박는 작업을 하려는데 한글 문자가 아스팔트에 갈린 수박처럼 깨져서 나오는 난관에 봉착했다. 파일 입력부의 소스는 다음과 같다.

 

FileReader fr = new FileReader(props.getUploadPath()+path);
BufferedReader br = new BufferedReader(fr);
String str = new String(new byte[835],"euc-kr");

인코딩이 깨지는 이유는 파일을 읽어오는 단계에서 이미 난도질 당해서 가져오는 것이라 그렇다.

해결책은 다음과 같다. 별 것도 아닌 내용을 굳이 태그 붙여서 블로그에까지 남기는 이유는 후손들이 이딴 문제로 시간 낭비하지 않기를 바라는 마음에서이다.

1.

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(props.getUploadPath()+path,"euc-kr"));
String str = new String(new byte[835]);

2. 윈도우에서 손을 뗀다.

3. 한글에서 손을 뗀다.

4. 코딩에서 손을 뗀다.

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크
2011/10/20 15:37 2011/10/20 15:37