차근차근/JAVA JSP

쌰 입력받기.. + 굑 입력받기

예쁜꽃이피었으면 2023. 5. 19. 08:48

[현재 상황]

form(멀티파트)안에 있는 데이터들을 post로 보낸다.

그리고 페이지는 euc-kr로 되어 있는데.. 기존에 이렇게 되어 있었기 때문에 유지함..

 

으쌰 으쌰 라는 말을 저장할 때

으? 으? 로 자바에서 받음.

 

그래서 utf-8로 보내봄.. 

 

jsp에서 저장 버튼 누를 때 ajax로 보내면서 인코딩해서 보냄

const formData = new DormData();

formData.append("testName",encodeURIComponent($("input[name=testName]").val()));

그리고 컨트롤러에서 받을 때

URLDecoder.decode(testName변수,"UTF-8");해서 받아봄 

으? 으?로 보냄

 

찾아보니 이 방식은 get에서만 되기 때문에 post는

컨트롤러에서 request.setCharcterEncoding("UTF-8");을 해야 한다고 함(톰캣 설정을 바꾸거나)

추가해봄 으? 으?로 나옴..

 

 

[20230522-1]

- 인코딩 디코딩 이리저리해도 쌰는 계속 물음표로 나옴.

- 자바 파일을 ms949로 바꿔 봄. 쌰는 계속 물음표..

 

[20230522-2]

- DB까지 잘 저장됨. -> DB에서 읽어와서 화면에 뿌릴 때 으? 으?이렇게 나옴.

 

jsp에서 입력 -> js에서 폼 체크 -> submit했을 때 오라클에 쌰가 잘들어감.

테스트 할때는 form submit했던 걸 ajax로 바꿔서 데이터를 하나씩 읽어와서

var formData = new FormData();

var formData = "name="+$("input[name=nameTEST]").val();

formData .. 필요한거 추가 후에

ajax 에

...

data : encodeURI(encodeURI(formData)),

...

해서 보내고

 

컨트롤러에서 

URLDecoder.decode(URLDecoder.decode(name,"utf-8"),"utf-8");하니까 DB까지 쌰가 잘 들어갔다.

 

DB에  잘 들어간 거 확인 후에 formsubmit전에 

var name = $("input[name=nameTEST]").val();

name= encodeURI(name);

$("input[name=nameTEST]").val(name);

form.submit();하고

 

컨트롤러에서 

URLDecoder.decode(name,"utf-8"); 이렇게 받음. 하나만 처리할 때 모든 값을 처리할지는 나중에 생각하고..

js에서 보낸 쌰를 이클립스 콘솔에서 찍어보면 ? 이지만 Db에서 보면 쌰라고 잘 들어갔다.

 

이제 불러오는거 ...수정해야 해..

 

+ jsp상단에 

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

이거 추가하면 바로 되는데. 

문제는.. 이 프로젝트 전체가 euc-kr로 되어 있어서 내 마음대로 바꿀 수가 없다..

이미 운영중인 사이트이고.. 모든 페이지와 프로젝트를 utf-8로 바꾼다면... 다 테스트하고 수정해야 한다.....................................

 

일단 되는 건 알았고.. 다른 방법 찾아보자.. 

 

 

+ 현재는 해당 페이지를 넘어갈 때 자바에서 데이터를 넘기는데

페이지에 진입한 후에 ajax로 데이터를 읽어오도록 수정해봐야겠다.

그때 contentType에 utf-8주면 될 것 같은데?

 

 

 

 

 

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=paraevil&logNo=70165962824 

 

브라우져에 상관없이 euc-kr에 없는 특수한글(눝, 뷁)을 db에 저장하는 법

우리쪽 프로그램이 jsp도 charset이 euc-kr이고 class도 euc-kr이다.   db도 캐릭터셋도 euc-kr...

blog.naver.com

https://u-it.tistory.com/entry/POST%EB%B0%A9%EC%8B%9D%EC%9D%98-%EC%A0%84%EC%86%A1%EC%9A%94%EC%B2%AD-%EC%9D%BC-%EB%95%8C-UTF-8-%ED%95%9C%EA%B8%80-%EC%9D%B8%EC%BD%94%EB%94%A9-%EC%84%A4%EC%A0%95-requestsetCharacterEncodingUTF-8-webxml

 

POST방식의 전송요청 일 때 UTF-8 한글 인코딩 설정 request.setCharacterEncoding("UTF-8") / web.xml

우리가 뷰페이지 텍스트박스에서 한글을 입력받으면 한글이 깨지는경우가 종종 있습니다. 한글이 깨지는 이유는 POST요청에서 Server내부 인코딩이 안된것입니다. POST요청같은 경우는 톰캣 내부

u-it.tistory.com

https://okky.kr/questions/194808

 

OKKY - 한글 깨짐 도와주세요(???? 이렇게 나옴)

이것 때문에 벌써 일주일째인데요. 도움주실분 찾고 있습니다. 첨부 파일 처럼 한글이 전부 ???? 로 나옵니다. 원래는 아메키라노 라고 쓴거구요. 처음에는 MySql 문제인가 했는데 소스에 직접 써

okky.kr

https://folivora.tistory.com/19

https://czar.tistory.com/363

https://min-nine.tistory.com/124

 

PHP htmlspecialchars() 사용 시 특정 한글 깨짐 현상 해결

PHP PHP htmlspecialchars() 사용 시 특정 한글 깨짐 현상 해결 방법! htmlsepcialchars() 함수를 사용 해도 불구하고 특정 한글이 깨져서 나올 때가 있다. 예를들어 쓔,쌰,햨,혘,큙 등의 일반적이지 않은 한글

min-nine.tistory.com

 

https://yunex.tistory.com/19

 

한글 encoding 문제 (utf-8 => ms949 변환)

참고URL : EUC-KR에서 UTF-8로 파일 인코딩 변경 오늘 뜬금없이 전해진 비보. 저번달까진 잘 되던 파일전송(SAM파일) 프로그램이 수신측에서 오류를 냈다고. 아~ 그동안 우리쪽은 변경된것이 없단말이

yunex.tistory.com

https://lordofkangs.tistory.com/39

 

[ JSP ] 인코딩(Encoding) 설정

문자가 깨지는 이유는 브라우저 => 서버 서버 => 브라우저 환경이 변할 때, 환경별로 설정된 인코딩 방식이 다르기 때문이다. 그러므로 인코딩 설정을 바꾸어야 한다. 브라우저 => 서버 (Request) 요

lordofkangs.tistory.com


20230925

이제는 굑이다..모든 프로젝트가 euc-kr이라.. 내가 마음대로 인코딩 형식을 바꾸는 것은 어렵기 때문에 예외처리를 해야 할 것 같다..

쌰와 같은 방식으로 Db에 저장 하는 것 까지는 해결했다.(+ 테스트 페이지만 UTF-8로 변경함.)

근데 굑은 사용자 화면에서 빈공간으로 보이고있다....그래서 굑이라는 한글이 깨지고 있다고 보면될 것 같다..

 

ajax로 html태그 안에 보여주고 있는데 비동기 통신으로 받아온 후 alert해보면 굑이 나온다.

근데 html에서는 공백으로 보이고있다.

https://product.kyobobook.co.kr/detail/S000200659798

 

생각을 바꾸는 수학 수다 | 수메이라 규젤 - 교보문고

생각을 바꾸는 수학 수다 |

product.kyobobook.co.kr

교보도 나도 utf-8로 가져온 것 같은데 어디서 차이가 나는 걸까...

 

교보

시도1)

해당 jsp를 UTF-8로 만들고 데이터 불러온다.

=> 개발자도구에서는 보이는데 사용자페이지에는 안보인다.

시도2) 

해당 jsp를 euc-kr로 그대로 두고 비동기처리로 데이터를 불러와서 뿌려준다.

=> 개발자 도구에서는 보이는데 사용자 페이지에서는 안보인다.

 

개발자도구에서는 보이고 사용자 페이지에서는 안보이는 이유는?

+ 사용자페이지에서 해당 데이터를 복사해서 다른 곳에 붙여넣기 해보면. 글씨 보이고 있음.

그러면.. 화면에서 표현이 안된다고 봐도 되는 건가?

 

 

https://dencode.com/

https://namu.wiki/w/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C/A000~AFFF

 

유니코드/A000~AFFF - 나무위키

이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권

namu.wiki

굑의 유니코드 AD50

UTF8: 234, 181, 144;  UNICODE: AD5

The Unicode Standard, Version 15.1

https://www.unicode.org/charts/PDF/UAC00.pdf

 

 

"폰트가 해당 글씨를 지원하는지 보자.."
나는 문제가 되는 페이지에서 나눔스퀘어 폰트를 사용하고 있었는데..
테스트해보면 '굑'이라는 글씨는 없다..휴..하루종일 시간..다 썼다.
 https://hangeul.naver.com/font/nanum


 

반응형