우리는 CKEditor라는 JavaScript WYSIWYG 텍스트 편집기를 사용하고 있습니다. 편집기에는 사용자가 텍스트 편집기에 입력 한 내용을 HTML로 표시하는 소스 뷰가 있습니다. 때로는 편집기가이 원본보기에 줄 바꿈하지 않는 공백 (
)을 삽입하는 경우가 있습니다.왜이 문자 인코딩 문제는 일부 시스템에서만 발생합니까?
모든 것이 dev 시스템에서 올바르게 작동하는 것처럼 보이므로 프로덕션 서버에 배포했습니다. 이 시점에서 우리는 이상한 Â 문자 (Â
)가 텍스트에 삽입되는 것을보기 시작했습니다. 일부 독서 후 나는 이것이 CKEditor 버그 추적 페이지의 여러 티켓에서보고되었음을 알았습니다. ckeditor.js에 대한 script
태그의 charset
속성을 UTF-8
으로 설정하여 문제를 해결할 수있었습니다. 왜 script
태그는 특정 시스템에서 charset
처음에 설정 한 속성 및 필요한 이유는 않았다
내 질문
이은? 는this SO question의 마지막 코멘트는 UTF-8의 비 분리 공간에 대한 바이트 순서가 latin1
의 비 분리 공백 뒤에  문자 실제로 것을 언급 (ISO-8859-1 권리?). 사용자가 소스보기로 전환 할 때마다 다른  문자가 차례대로 삽입되므로 이는 단서가 될 수 있습니다. 마치 CKEditor 프레임 워크가 비 분리 공간을 주입하려고하는 것처럼 보이지만,  
,  
등으로 바뀝니다. 모든 시스템의 content-type
(Chrome 디버거에서 확인)은 text/html;charset=ISO-8859-1
이며 그 이유는 확실하지 않습니다. 모든 Tomcat 구성의 Dfile.encoding 옵션은 utf-8
으로 설정됩니다. meta
태그도 <meta charset="utf-8">
입니다.
'FILE.encoding'은'file.encoding'이어야합니다. 시스템 속성은 대소 문자를 구분합니다! –
@AaronDigulla 죄송합니다. 서버에 소문자로 잘못 입력했습니다. 고침, 고마워! – theblang