문제

보기 흉한 숯 상자 만 있다면 무엇이 잘못되었는지 알아 내기 위해 어떤 도구 나 전략을 사용하십니까?

(제가 직면 한 특정 시나리오는 일본어 문자를 표시해야하는

도움이 되었습니까?

해결책

첫째, "못생긴 문자 없음 상자"는 인코딩 문제가 아닐 수 있으며 페이지에 글리프를 표시 할 수있는 글꼴이 설치되지 않은 신호일 수 있습니다.

대부분의 문자 인코딩 문제는 문자열이 한 시스템에서 다른 시스템으로 전달 될 때 발생합니다.웹앱의 경우 일반적으로 브라우저와 애플리케이션 사이, 애플리케이션과 파일 시스템 사이, 애플리케이션과 데이터베이스 사이입니다.

따라서 잘못 인코딩 된 데이터의 출처, 소스에있는 문자 인코딩, 수신되는 인코딩을 확인해야합니다.가장 좋은 방법은 시스템에 문제가 있음을 알고있는 캐릭터를 통해 전송하고 앱의 각 수준에서 검사하는 것입니다.앱 내부에서 어떻게 생겼습니까?데이터베이스에서?데이터베이스에서 다시 가져올 때?브라우저에 언제 표시 되나요?

너무 일반적이어서 미안하지만이 질문은 더 많은 것을 제공하지 않습니다.

다른 팁

브라우저로 보내는 데이터가 엉망이되면 (모지 베이킹) 휴지통 문자가 표시됩니다. 또한 META 헤더에 잘못된 문자 집합을 지정하면 브라우저가 페이지를 잘못 렌더링하여 페이지의 임의의 위치에 모지 베이킹을 다시 발생시킵니다.

CJK 문자 집합을 처리 할 때 프로그램 수명 내내 UTF8 문자 인코딩을 사용해야합니다 (데이터 저장, 검색, 코드에서 데이터 조작, 브라우저에 표시 등 ...)

UTF8이란? UTF8은 문자열이 아닌 데이터의 이진 스트림을 처리합니다. 이것은 비트 조합이 가변 길이를 가질 수 있음을 의미합니다. ASCII 문자는 1 바이트를 나타내는 8 비트의 고정 길이를 갖지만 UTF8 문자는 6 비트, 8 비트, 12 비트 등으로 구성 될 수 있습니다. 따라서 UTF8은 일본어가 "모지 베이크"라고 부르는 경향이 있습니다.

코더로서 데이터베이스에서 코드베이스, 브라우저에 이르기까지 UTF8을 완전히 시도하고 사용해야합니다. 이메일의 경우 UTF8을 사용할 수 있지만 대부분의 메일 서버와 클라이언트가 여전히 오래되고 서로 다른 문자 집합 (예 : ISO9022X)을 사용합니다.

데이터베이스 설정 mysql 사용자 인 경우 DB에 대한 모든 연결이 UTF8을 사용하고 모든 테이블 / 필드가 UTF8을 사용하는지 확인해야합니다. 기본적으로 mysql은 라틴어 (스웨덴어) 문자 집합을 사용합니다. 그 멍청한 스웨덴 사람들은 유머 감각을 좋아합니다 !!

코드베이스 확인 내 경험상 Notepad ++, Notepad2, UltraEdit, e 등과 같은 편집기에는 모두 UTF8 지원 문제가 있습니다. 대부분 작동하지만 개발자가 CJK 언어를 직접 사용하지 않기 때문에 완벽하지 않습니다. BOM (Byte Order Mark) 해제, 탭이 엉망진창, 잘못된 문자 집합 변환 등과 같은 문제는 모두 문제가됩니다.

Maruo와 같은 검증 된 UTF8 편집기를 사용하는 것이 좋습니다. 이것은 일본 회사에서 만든 것이지만 에 영어 버전 (및 평가판)이 있습니다. http://www.hidemaru.interlink.or.jp/software/

마지막으로 소스 파일을 UTF8로 변환해야 할 수도 있습니다. 특히 코드베이스 자체에 CJK 언어 문자열이 포함 된 경우

문자열 조작 모든 문자열 함수는 멀티 바이트 안전이 필요합니다. 내가 더블 바이트라고 말하지 않았 음을 주목하라. UTF8은 문자를 나타내는 데 사용되는 총 비트 수에 따라 더블 바이트가 아니라 멀티 바이트입니다. PHP에서는 특별히 MB 문자열 함수를 호출해야합니다. Ruby 및 기타 언어는 더 투명하게 지원되지만 애플리케이션 서버에 대한 문서를 확인해야합니다!

META 태그 META 헤더는 google.co.jp 또는 yahoo.co.jp를 확인하세요. 제대로하는 방법을 아는 사이트입니다. 기본적으로 다음 META 태그를 문서 에 포함합니다.

일반적으로 영문 HTML 문서 유형 속성과 위의 문자를 함께 사용하는 것이 안전합니다. 따라서 위의 META 태그를 추가하면 다음이 포함 된 HTML 문서에서 작동하는 것 같습니다.

이메일 이것은 완전히 다른 웜 캔입니다. UTF8은 많이 작동하지만 많은 오래된 일본 클라이언트는 ISO2022X를 더 많이 사용합니다. 여기에서 다룰 가치가 없습니다.

UTF8 디버깅 문제 Maruo와 같은 안정적인 UTF8 편집기가 있으면 정적 페이지를 만들고 문제를 해결할 수 있습니다.

도움이되기를 바랍니다.

데이터를 디스크로 리디렉션하고 Hex 편집기 를 사용합니다.대부분의 텍스트 편집기 / 뷰어는 장면 뒤에서 자체 변환을 수행하므로 데이터가 실제 형식으로 표시되는지 확인하기가 어렵습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top