자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Pos,Copy,Length,컴포넌트등 한글2바이트문의입니다.
2012.02.07 18:29
Length('연습') = 2 로 값이 나옴니다.
Length(AnsiString('연습') = 4 로 값이 나옴니다.
Pos는 무엇을 해도 2 값이 나옴니다.
단순한게 Length, Copy 정도 사용한다면 문제가 없겠는데
Edit 속성에서 MaxLength , StringGrid 등 문자 관련하여는 다 한글을 1 로 인식을 합니다.
기본을 바꾸는 옵션등을 알고 싶어서 문의 드립니다.
생각치 못하다가 개발이 중지 됬습니다. 빠른 답변 바랍니다.
댓글 12
-
박병일
2012.02.07 19:21
-
앙큼쟁이블랙
2012.02.07 19:29
XE2를 사용하는것 맞습니다.
그럼 Edit 컴포넌트를 많이 사용하는데 숫자,영문,한글이 같이 들어가
있는경우 Pos는 위치를 어떻게 찾나요? MaxLength는 사용을 못한다는 이야기가 되는건가요?
문제가 너무 큽니다. 방법이 전혀 없나요?
-
박병일
2012.02.07 19:33
모든 글자가 동일하게 1바이트 이므로 영문, 한글, 숫자 구분 없이
한글자 씩으로 인식하면 됩니다.
-
박병일
2012.02.07 19:44
MaxLength를 그냥 쓰시면 되는데요?
영문, 숫자, 한글 포함해서 MaxLength 를 지정해 주시면 됩니다.
-
앙큼쟁이블랙
2012.02.07 19:46
그럼 전체 조회시에 Messages 부분에 영문 코딩은 보이는데 한글은 깨져서 보이는것은 해결이 되나요?
-
앙큼쟁이블랙
2012.02.07 19:48
MaxLength를 10으로 하더라고 한글이 10글자가 들어가는데 그냥 사용할수가 없죠...
그럼 DB 필드는 10이라 잡으면 5글자만 들어가게 되는데요
-
박병일
2012.02.07 20:12
아.. 그런 문제가 있겠군요. DB에서는 2바이트로 되어 있는데.. 에디트 필드에서는 1바이트..
어쩔 수가 없겠는데요. 디비가 유니코드를 쓰지 않는 이상 길이문제는 세심하게 조정을 하셔야 할것 같습니다.
전체 조회시 한글이 깨지는건 무슨 문제죠?
그것도 길이 문제 인가요? 한글이 깨진다는 리포트는 없었습니다만..
-
앙큼쟁이블랙
2012.02.07 22:26
리포트가 아니고 델파이 하단에 Messages 부분에 전체 소스중에 검색(Search-Find In Filies)을 하면
Messages 부분에 리스트가 보여지는데
그 라인에 한글이 있다면 한글로 보이는것이 아니고 알아볼수없는 깨진것으로 표시가 됩니다.
-
박병일
2012.02.07 22:50
말씀하신 내용으로 테스트 해봤습니다만 한글이 깨지는 상황은 발생하지 않습니다.
아마도 사용하시는 컴퓨터의 FontLink가 깨진것이 아닌가 싶습니다만..
-
앙큼쟁이블랙
2012.02.08 01:51
FontLink 이거는 어떻게 알수 있을까요? 해결방법도요
지금 3대를 설치해서 사용하는데 다 그렇거든요
나오는것도 있고 깨져서 나오는것도 있고 그렇습니다.
-
박병일
2012.02.08 02:28
FontLink 때문인지는 확실하지 않습니다만..
FontLink와 관련해서는 FontLink 키워드롤 구글검색 하시면 많이 자세히 나옵니다.
-
자안
2014.11.29 00:01
사용자가 Edit박스에 입력시 200 Byte까지만 입력되게 하는 방법은 없겠군요.
\MaxLength 를 200으로 하면 영문이야 200글자가 들어가면 상관없지만
한글을 내부적으로 1바이트로 처리하여 Edit박스에 200글자까지가 입력되어버리니
결국 DB에 저장할때는 문제가 생겨버리겠네요. (DB에서는 한글 한글자를 2바이트로 취급하므로)
음.. 다른 방법으로 구현을 해야 되는건지...
Pos,Copy,Length,컴포넌트등 한글2바이트문의입니다.
2012.02.07 18:29
Length('연습') = 2 로 값이 나옴니다.
Length(AnsiString('연습') = 4 로 값이 나옴니다.
Pos는 무엇을 해도 2 값이 나옴니다.
단순한게 Length, Copy 정도 사용한다면 문제가 없겠는데
Edit 속성에서 MaxLength , StringGrid 등 문자 관련하여는 다 한글을 1 로 인식을 합니다.
기본을 바꾸는 옵션등을 알고 싶어서 문의 드립니다.
생각치 못하다가 개발이 중지 됬습니다. 빠른 답변 바랍니다.
댓글 12
-
박병일
2012.02.07 19:21
-
앙큼쟁이블랙
2012.02.07 19:29
XE2를 사용하는것 맞습니다.
그럼 Edit 컴포넌트를 많이 사용하는데 숫자,영문,한글이 같이 들어가
있는경우 Pos는 위치를 어떻게 찾나요? MaxLength는 사용을 못한다는 이야기가 되는건가요?
문제가 너무 큽니다. 방법이 전혀 없나요?
-
박병일
2012.02.07 19:33
모든 글자가 동일하게 1바이트 이므로 영문, 한글, 숫자 구분 없이
한글자 씩으로 인식하면 됩니다.
-
박병일
2012.02.07 19:44
MaxLength를 그냥 쓰시면 되는데요?
영문, 숫자, 한글 포함해서 MaxLength 를 지정해 주시면 됩니다.
-
앙큼쟁이블랙
2012.02.07 19:46
그럼 전체 조회시에 Messages 부분에 영문 코딩은 보이는데 한글은 깨져서 보이는것은 해결이 되나요?
-
앙큼쟁이블랙
2012.02.07 19:48
MaxLength를 10으로 하더라고 한글이 10글자가 들어가는데 그냥 사용할수가 없죠...
그럼 DB 필드는 10이라 잡으면 5글자만 들어가게 되는데요
-
박병일
2012.02.07 20:12
아.. 그런 문제가 있겠군요. DB에서는 2바이트로 되어 있는데.. 에디트 필드에서는 1바이트..
어쩔 수가 없겠는데요. 디비가 유니코드를 쓰지 않는 이상 길이문제는 세심하게 조정을 하셔야 할것 같습니다.
전체 조회시 한글이 깨지는건 무슨 문제죠?
그것도 길이 문제 인가요? 한글이 깨진다는 리포트는 없었습니다만..
-
앙큼쟁이블랙
2012.02.07 22:26
리포트가 아니고 델파이 하단에 Messages 부분에 전체 소스중에 검색(Search-Find In Filies)을 하면
Messages 부분에 리스트가 보여지는데
그 라인에 한글이 있다면 한글로 보이는것이 아니고 알아볼수없는 깨진것으로 표시가 됩니다.
-
박병일
2012.02.07 22:50
말씀하신 내용으로 테스트 해봤습니다만 한글이 깨지는 상황은 발생하지 않습니다.
아마도 사용하시는 컴퓨터의 FontLink가 깨진것이 아닌가 싶습니다만..
-
앙큼쟁이블랙
2012.02.08 01:51
FontLink 이거는 어떻게 알수 있을까요? 해결방법도요
지금 3대를 설치해서 사용하는데 다 그렇거든요
나오는것도 있고 깨져서 나오는것도 있고 그렇습니다.
-
박병일
2012.02.08 02:28
FontLink 때문인지는 확실하지 않습니다만..
FontLink와 관련해서는 FontLink 키워드롤 구글검색 하시면 많이 자세히 나옵니다.
-
자안
2014.11.29 00:01
사용자가 Edit박스에 입력시 200 Byte까지만 입력되게 하는 방법은 없겠군요.
\MaxLength 를 200으로 하면 영문이야 200글자가 들어가면 상관없지만
한글을 내부적으로 1바이트로 처리하여 Edit박스에 200글자까지가 입력되어버리니
결국 DB에 저장할때는 문제가 생겨버리겠네요. (DB에서는 한글 한글자를 2바이트로 취급하므로)
음.. 다른 방법으로 구현을 해야 되는건지...
델파이 XE2를 사용하고 계신가요?
델파이 XE2에서는 유니코드 타입을 사용하기 때문에 모든 문자가 1바이트로 인식됩니다.
Length(AnsiString('연습') = 4 의 경우 AnsiString으로 변환을 했기 때문에 4바이트로 나오는게 맞습니다.
델파이XE, 혹은 XE2에서는 모든 문자가 1바이트로 인식되므로 Length, Copy등 문자열 처리 함수에서는
앞으로 1바이트로 인식 하시면 됩니다. 기본을 바꿀수는 없습니다.