반응형

프로그래밍(~2017) 25

[자바] Base64 인코딩,디코딩

Java 뿐 아니라 개발자라면 한번쯤은 접해봤을법한 Base64 인코딩... Base64의 인코딩 원리는 아래의 글을 확인해 주시고... 2009/02/23 - [정보보안/암호학] - Base64 인코딩 원리 Java 에서 Base64 인코딩을 하기 위해서는 기본적으로 Java에서 제공하는 클래스를 이용하는 방법과 Apache Commons Codec 의 Base64 클래스를 사용하는 방법이 있다. 먼저 자바에서 기본적으로 제공하는 Base64 인코딩... static 메서드가 아니기 때문에 객체 생성후 호출을 해야하고 decoding의 경우 예외처리까지 해야하는 불편함이 있다. import java.io.IOException; import sun.misc.BASE64Decoder; import sun...

자바에서 문자열 인코딩 방식 바꾸기

new String(바이트 배열,인코딩방식); 예) byte b[]={12,45,12,45,78}; new String(b,"utf-8"); b에 있는 바이트 값들이 utf-8로 되있다는 것을 알려주는 것이다. 즉 utf-8 을 unicode로 변환시켜준다. 예) String str = "테스트"; byte b[]=str.getbytes("utf-8"); str.getbytes() 함수는 문자열을 바이트 배열로 반환시키는 함수이다. getbytes 함수안에 문자 형식을 지정하면 지정된 문자 형식으로 바꾸어 바이트 배열로 반환시킨다. 즉 자바가 사용하는 unicode 문자열을 utf-8로 바꾸어 바이트배열로 반환한다. (리눅스 서버와 자바 클라이언트 프로그래밍시 문자 인코딩 방식이 달라서 사용했던 방법이다..

extern "C"

c에서 c++ 함수를 사용하거나 혹은 c++에서 c함수를 사용할때 각각의 언어는 컴파일시 함수이름 규약이 다르다. 예를 들어 int test()란 함수가 있다. c에서는 컴파일시 test라고 함수 이름이 정해진다면 c++에서는 asdf@test 이런식으로 함수 이름이 다르게 지정된다. 이유는 c++의 다형성 때문이다. 이와 같이 c와 c++의 함수 이름 규약이 다르기 때문이다. c++ 에서 함수 앞에 extern "C"를 선언해주면 c++ 컴파일러가 컴파일시 함수이름을 c함수 이름 규약으로 정해준다. dll 파일에서 외부에서 호출 가능한 함수 정의시 #indef __cplusplus extern "C" { #endif //함수들....... //함수들...... #indef __cplusplus } #e..

반응형