MSSQL 2008 R2 이고 영문판 입니다.
데이타 베이스 기본 언어는 한글로 설정 되어 있습니다.
SELECT @@LANGUAGE
GO
한국어 로 나옵니다.
웹페이지 는 EUC-KR 로 제작 되었습니다.
언어는 ASP 입니다.
웹에서 볼 때는 모두 정상적으로 보입니다.
하지만 검색이 안되서 확인 해보니 DB상에서는 한글이 깨져서 보입니다.
예를 들면 웹상에서 보이는 단어는
상시/오전직납
DB에서 SELECT 해서 보면
상시/오전직납
이렇게 저장 되어 있습니다.
모두 그런 것이 아니라 가끔 이런 경우가 발생 합니다.
웹페이지 상단에 캐릭셋이 모두 설정 되어 있습니다.
저장 페이지는
<% Response.ChaRset = "euc-kr"%>
입력 페이지는
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
웹페이지는 모두 ANSI 파일 입니다.
모두 동일하게 오류가 나면 어디인지 찾기가 쉬울 것 같은데
간혹 이런 경우가 발생하니 답답하네요. ㅠㅠ
아 그리고 저 필드는 UPDATE 에 만 사용 합니다.
최초 INSERT 는 공백으로 저장 됩니다.
어디를 확인 해봐야 할런지요.
그리고 혹시 검색시 ChaRset 를 이용해서 깨진 글자를 정상적으로 검색 할 수 있는지요?
Comment 10
-
항해자™
2014.02.20 14:15
-
죠리퐁
2014.02.20 14:29
답변 감사 합니다.
프로시저 는 안써구요.
일반 쿼리 이구 필드 타입은 varchar 255 입니다.
-
죠리퐁
2014.02.20 14:37
이미지 첨부 하였습니다.
저런식으로 가끔 등록이 됩니다.
-
항해자™
2014.02.20 14:40
첨부파일을 보니,,, 웹에서 문자열이 변경된 경우 같습니다.
-
항해자™
2014.02.20 14:37
해당 쿼리 입력이 어떻게 들어오는지 프로필러를 통해 모니터링 해 보는 것도 좋을 듯합니다.
실제 입력 시 이미 값이 저렇게 할당되는 것일 수도 있습니다.
TextData 에서 위 테이블 이름으로 필터를 걸면 도움이 되겠네요.
-
죠리퐁
2014.02.20 14:41
네 프로파일러 돌려서 확인 해야 겠지요?
일단 db 저장 하기 전에 웹에서 해당 값을 찍어 보면 한글이 정상적으로 보여 집니다.
수 없이 제 PC, 그리고 버츄얼 PC , xp, 2003, 2008, windwos7 다 확인 해봐도 깨지지 않았고.
db저장도 잘 되니 확인 하기가 어렵네요 ㅠㅠ
업체에서 말 하기 를 XP 사용 하는 PC에서 가끔 저런다고 합니다.
-
항해자™
2014.02.20 14:43
저 문자열은 웹에서 찍으면 브라우저가 해석해서 찍어주는 형태입니다.
그래서 웹에서 찍어보는 것은 의미가 없어 보이구요.
XP가 문제라기 보다 브라저에 따른 특수성으로 보는게 맞을 듯 합니다.
-
항해자™
2014.02.20 14:47
html 파일 하나 만들어서 주문취소 와 같은 값을 넣고 실행해 보세요ㅎㅎ
이 문제는 100% 웹에서 해결할 수 있는 문제입니다.
-
죠리퐁
2014.02.20 15:05
네 저도 웹 브라우즈 문제라고 생각 하고 있습니다.
테스트 한 번 해볼게요
감사 합니다.
-
죠리퐁
2014.02.20 15:09
올려주신 깨진 문자열 을 실행 해보니 주문취소 로 나오는군요.
수정페이지 중 캐릭셋이 설정 안된 곳이 있는지 찾아 봐야 겠습니다.
고맙습니다.
프로시저 입력 변수를 nvarchar 로 사용하시나요??
웹에서 던질 때도 변수 타입을 nvarchar로 하거나 N'내용'으로 하시면 됩니다,,