일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- object
- 게시판
- toString
- https://velog.io/@velopert/create-typescript-react-component
- http://jeonghwan-kim.github.io/dev/2019/06/25/react-ts.html
- 출처 : https://webdir.tistory.com/506
- 출처 : https://joshua1988.github.io/web-development/javascript/promise-for-beginners/
Archives
- Today
- Total
Back Ground
자바 Byte /오라클 Byte 크기 다를때 UTF-8은 3Byte 본문
이클립스를 Encoding을 MS949 기본값으로 설정해 놨던 상태였다.
java에서 문자열을 바이트를 구해 DB에 입력할 생각이였다.
1
|
int test_byte = test_text.getByte().length;
|
cs |
"홍길동" 이라는 문자열의 byte를 구한다.
그렇다면 문자열은 2byte 처리하기때문에 [ 6 byte ] 가 나오게된다.
그렇게 Map<String,Object> 에 담아서 DAO를 통해 DB에 넣었는데...
1
|
map.put("test_text", test_text);
|
cs |
DB
TEST_TEXT VARCHAR2(6); |
ORA-12899: "테이블"."test_text" 열에 대한 값이 너무큼 (실제:9 최대값:6)
라고 들어 뜰 것이다.
그 이유는
DB의 "CHARACTER SET"이 UTF-8로 되어있기 때문이다.
확인방법
[쿼리]
|
[결과]
NLS_CHARACTERSET | AL32UTF8 |
NLS_NCHAR_CHARACTERSET | AL16UTF16 |
UTF-8에선 한글은 3byte이기 때문에 발생한 문제였다.
해결방법은 java에서 byte를 체크할때
|
UTF-8로 바이트를 구한다.
그렇다면 동일한 byte수를 구할 수 있다.
'JAVA' 카테고리의 다른 글
Kawa (0) | 2019.01.28 |
---|---|
JVM/JRE/JDK 이란 (0) | 2018.01.29 |
ModelAndView (0) | 2017.06.01 |
JVM 메모리 구조 (1) | 2017.03.09 |
JAVA - 배열[] (0) | 2017.02.15 |
Comments