database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9240 게시물 읽기
No. 9240
substring추가질문입니다..
작성자
김원진(an35w)
작성일
2013-02-19 19:18
조회수
9,823

아는게없어서 다시질문드립니다..

앞서질문드렸던거는 잘해결이됐는데...여기서또한가지문제가....

한글이3바이트로 계산이돼서 생긴문젠데....

'121231234567890123가나123             00123'---요데이터하고

'121231234567890123가나다123         00123'--요넘하고 length가 다르더라구요..

한글2바이트기타다른영문,숫자,문자들은 1바이트로 자를수없을까요??

이 글에 대한 댓글이 총 1건 있습니다.

이곳 게시판에 늘 올라오는 부분인데요.

한글을 2바이트로 처리하겠다는 조건은 단지 특정 인코딩 안에서만 가능한 조건입니다.

한글의 한 글자가 얼마든지, 3바이트도 되고, 4바이트도 될 수 있습니다.

중요한 것은 문자열을 처리하는 것이고,

문자열에서는 바이트 단위라는 것은 참 구시대적인 생각이거든요.

왜냐하면, '안녕하세요' 에서 7바이트만 잘라서 쓰겠다는 것은 옛날 모든 환경이 똑같은 한글 인코딩 체계를 쓸 때나 가능한 이야기였습니다.

 

여기까지는 문자열이라는 자료형 자체에 대한 이야기고,

어디까지나 이상적인 이야기고, 실무에서는 아직도 바이트 단위로 문자열을 자르겠다는 사람들이 많아서

convert() 함수를 제공합니다.

convert('문자열', 'utf8', 'uhc') 이런식으로 변환을 하면 한글의 한 글자를 2바이트로 처리하는 확장완성형 문자열로 바뀝니다. 그 다음 원하는 작업을 하고, 다시 utf8로 바꾸면 될 것 같네요.

 

 

김상기(ioseph)님이 2013-02-20 16:09에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9243postgreSQL 버전 체계? [1]
전상도
2013-02-22
10390
9242커넥션 풀링 관련
김민석
2013-02-21
9889
9241DB 튜닝 조언 좀 부탁드립니다. [2]
zina
2013-02-19
9887
9240substring추가질문입니다.. [1]
김원진
2013-02-19
9823
9239substring질문입니다...답변부탁드려요.... [2]
김원진
2013-02-19
9489
9238insert 관련 질문 입니다 [1]
carion
2013-02-19
9059
9237뷰의 기존 칼럼을 수정하다 오류가 납니다. [2]
iyob
2013-02-18
9490
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다