본문 바로가기

Java7

html/xml body response inputstream parsing / example http패킷을 보내고 간단히 결과를 출력하는 내용을 구현하고 있었는데, 돌아오는 패킷에서 결과가 http protocol 이 아닌 http/xml 패킷으로 돌아왔다. 패킷을 떠보니 http protocol 부분바깥에 response가 존재했다. commons-httpclient 의 getResponseBodyAsStream함수로 호출이 가능했다. library 다운로드 링크http://hc.apache.org/downloads.cgi commons-httpclientcommons-loggingcommons-codec 샘플 예제는 다음과 같다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950.. 2015. 1. 11.
Preparestatement CANNOT order by JDBC, MYSQL getStrng Blob type, order by BUG. SQL : select user_name, aes_decrypt(user_password,'SECRET_KEY') as user_password from user order by user_name; java.sql.preparestatement 를 사용할 때, getString으로 리턴 할 경우 위와 같은 쿼리 결과를 제대로 반환하지 않는 문제에 직면했다. query상에 문제가 없고, order by를 사용하지 않거나, preparestatement대신 statement로 대신했을 경우 또는 Blob형을 사용하지 않을 경우는 문제가 없었다. 왜 그럴가 생각하고, 집에와서 간단히 jdbc를 다운받고, 간단한 코드로 테스트 해.. 2014. 5. 26.
자바 default charset 에 관하여 alphanum 이외의 2,3바이트의 문자간 charset의 변형에 대해서 돌아보았을 때, JAVA내에서의 charset의 변형과 데이터 유지관계에 대해 알 수 있었다. 또 다른 방면에서 데이터 자체의 손상이 없을 경우에도 JAVA 내에서 해당 데이터를 출력하지 못할 수 있다. 기본적으로 JAVA에는 실행시 설정된 default charset으로 charset이 설정되게 되는데, 이 charset의 해당 범위를 넘는 값은 당연히 출력하지 못하게된다. 기본 default charset은 Charset.defaultCharset() 함수로 확인할 수 있다. 참고 : http://docs.oracle.com/javase/7/docs/api/ 자바 실행시 charset을 설정하는 방법은 -Dfile.encodi.. 2014. 5. 7.
JAVA Encoding 과 Decoding에 대한 정리 자바 프로그래밍 특히 웹과 관련된 작업을 할때, 인코딩관련하여 생각보다 복잡한 문제에 직면하게된다. 그런데 워낙 인코딩 할 수 있는 문자조합이 여러가지이다 보니, 처음에 해결하려다가 나중에는 마구잡이로 이것저것 될때까지 입력해보는 경우가 많았다. 그래서 이런 문제에 대해 좀 더 생각해 보았다. 오해1 new String(byte[] bytes,Charset charset)에 대한 오해 String a = new String("한글".getBytes("EUC-KR"),"UTF-8");이런식으로 사용하게되는 오류를 많이 하고 정확한 문제를 잘몰랐었다. 설명대로 2번째 매개변수의 charset 으로 1번째 매개변수의 바이트배열을 디코딩한다고 되어있다. 2번째 매개변수로 디코딩하려면 1번째가 해당 charset.. 2013. 11. 14.
Illegal group reference 문제 해결 , 원인 replaceAll 매개변수 replaceAll함수에서 예상치 못한 아래와 같은 오류가 발생했다. Illegal group reference 원인을 모르던 중..API 를 확인한 결과.. 예상외로 replaceAll 함수는 첫번째 매개변수를 두번째 매개변수로 모두 바꿔준다가 아니라, 첫번째 매개변수의 정규식에 해당하는 스트링을 두번째 매개변수로 바꿔준다 였다. 그리고 친절하게 대처 할 수 있는 방법도 알려줬다.java.util.regex.Matcher.quoteReplacement(String) 이라는 함수를 이용하면,replaceAll 함수에 적용할 수 있는 String을 리턴한다. 나의 경우에는 $라는 문자가 있어서 문제가 되었는데, 이함수를 이용해 간단하게 해결했다. 그리고 이와는 별개로 다른 방법도 찾게 되었다.직접 해당 $.. 2013. 11. 12.