MySQL을 사용하는 웹사이트 중에 DB 문자세트가 'utf8'로 지정된 경우, 유니코드 확장B 이상의 한자는 입력이 안되는 문제가 있소. 입력만 안되는 것이 아니라, 해당 문자 이후의 내용이 아예 사라져버리는 심각한 문제라오.

(티스토리도 확장B 한자를 지원하지 않는지, 애써 작성한 포스트를 날려먹은 바 있소.)


DB 문자세트(데이터정렬방식)를 위 그림과 같이 'utf8mb4'로 지정해야만 유니코드의 모든(1~4바이트) 문자를 쓸 수 있다고 하니, 혹시 확장한자 입력 문제를 겪는 햏자들은 DB의 문자세트 설정을 확인해보기 바라오(일부 구버전에서는 지원하지 않음).


아울러, PHP 파일 등에 mysql_query("set names utf8"); 이런 대목이 있는 경우도 이를 mysql_query("set names utf8mb4"); 이렇게 같이 바꾸어 주어야 하오.






  1. 은령 2014.03.12 11:11 신고

    실은 utf8이라 함은 제대로 된 유니코드가 아니라 이전의 영어 코드와 호환하고 싶어 덧붙이기처럼 유니코드를 조합시킨 것에 가깝소이다.
    '그냥' 유니코드는 utf16 등으로 말하는 16비트일진대 MySQL의 설정이 utf8의 호환에 맞춰져 있는 듯하오.

    • - 관리자 - 2014.03.12 12:20 신고

      오호 그렇구료~
      요즘 웹사이트에서는 대부분 utf-8을 쓰고 있지만, 아직도 심지어 고리짝 euc-kr을 쓰는 페이지도 많아 소햏처럼 한자로 먹고 사는 햏자들에게는 애로사항이오.

    • 나모찾기 2015.10.14 23:12 신고

      utf8 제대로된 유니코드가 맞고, 그냥 유니코드라는 것은 없소. 유니코드가 16비트라는 것도 틀리오.

  2. 과기 2015.05.20 19:32 신고

    utf8도 '제대로 된 유니코드'를 표현하는 방법 중 하나입니다만, MySQL에서 'utf8'은 'utf8mb3'의 alias, 즉 UTF-8을 3바이트까지만 처리하는 인코딩입니다.
    말씀하신 확장B 한자 영역은 U+20000 부터이므로, 이 코드포인트를 UTF-8로 표현하려면 4바이트가 필요합니다. 그런데... utf8mb3을 쓰면 처리를 못하는게 아니라(3바이트로 짤려서 잘못된 글자가 되는 것이 아니라) 아예 처리를 안 하기 때문에 글자가 아예 사라집니다.
    해결책은 적으신대로 utf8mb4 를 사용하는 것이구요...
    참고로 이 경우는 UTF-16으로도 4바이트 필요합니다. (16비트를 surrogate pair로 2개 사용)

    저도 이런 문제가 있어서 찾아보다가 글 남기고 가는데요, 요지는 UTF-8이나 UTF-16이나 똑같이 '그냥' 유니코드 인코딩 중 하나라는 거죠 ^^;
    (사족을 덧붙이면, UTF-16이나 UTF-32는 바이트 순서 문제가 있고 UTF-16은 코드 순으로 정렬할 때 16비트를 넘어가는 코드포인트, 즉 U+10000 이후 글자들이 surrogate pair를 사용하기 때문에 다른 인코딩과 정렬 순서가 달라지는 문제가 있습니다. 그래서 웹에서는 UTF-8을 주로 사용하는게 아닐까 하네요.)

苓 匱 衄 焠 爍 肘
령 궤 뉵 쉬 삭 주

胻 䐜 癀 䘌 瘾 芤
행 진 황 닐 은 규


언제나 한의학 전산화의 발목을 잡는 한자 문제에 유니코드는 과연 완벽한 해결책이 되는가?
위의 한자들은 이른바 파란색 한자, 빨간색 한자로 불리는 확장한자. 유니코드 글꼴(새바탕, 새굴림 등) 환경에서 잘 보인다고 하지만, 과연?

위의 한자들이 모두 잘 보입니까, 아니면 모양이 요상하다든지, □로 표시되는 것이 있습니까?
OS와 웹브라우저 환경을 병기해서 덧글로 알려주시면 좋겠습니다.



* 제 WinXP Pro SP2, IE6 환경에서는 진자와 닐자가 □로 표시되고 나머지는 잘 보이는군요.

  1. zetz 2007.01.22 13:47 신고

    제 WinXP Pro SP2, IE6 환경에서는 진자와 닐자가 □로 표시됩니다. (… 같으니 당연?)

  2. 인뎃 2007.01.22 23:31 신고

    Win2000 Pro SP4, IE6환경에서도 진자와 닐자가 □로 표시된다오..

  3. RanomA 2007.02.02 13:20 신고

    WinXP Home SP2, FireFox에서는 다 잘 보입니다.

  4. 초보회원 2012.03.06 09:42 신고

    윈도우7 64비트 얼티밋에디션, 크롬플러스(쿨노보) 환경에서는 다 잘 보입니다.

+ Recent posts