XML 구문 분석 오류: 형식이 올바르지 않음 위치:https://awstats.example.org/reports/www.example.org/2011/06/awstats.www.example.org.xml행 번호 603, 열 34:
<tr><td class="aws">- Toile du Qu\uffffbec</td><td>363</td><td>363</td></tr>
위의 내용은 마크다운의 이상함으로 인해 렌더링되는 방식이 아닙니다. 대신 FFFF의 유니코드 페일박스가 표시됩니다. vim이 잘 렌더링하고 문서 자체에 다음과 같이 표시되므로 이것이 왜 문제인지 잘 모르겠습니다.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
미국 이외의 문자를 적절하게 처리하기 위해 활성화해야 하는 awstats 설정이 있습니까?
답변1
다음 구성으로 4.01 Transitional을 사용하도록 awstats를 전환할 수 있습니다.
(awstats.model.conf에서)
# If you prefer having the report output pages be built as XML compliant pages
# instead of simple HTML pages, you can set this to 'xhtml' (May not work
# properly with old browsers).
# Change : Effective immediatly
# Possible values: html or xhtml
# Default: html
#
BuildReportFormat=html
답변2
해당 DOCTYPE은 브라우저에 XHTML Strict를 사용하도록 지시합니다. XHTML은 문서에 오류가 있는 경우 정상적으로 품질이 저하되는 대신 오류를 표시하도록 지시합니다. 이것이 실제로 XHTML(엄격)을 사용하는 사람이 없는 주요 이유 중 하나입니다. XHTML은 XML 문서의 문법입니다. 따라서 유효한 XHTML 문서는 유효한 XML 문서이기도 합니다. XML 사양에서는 유니코드 서로게이트 블록 0xFFFE 및 0xFFFF를 허용하지 않습니다. 보다여기.
AWStats를 수정하기 위해 할 수 있는 일이 있는지 모르겠습니다. 테스트로 DOCTYPE을 XHTML Strict 이외의 다른 것으로 변경해 볼 수 있습니다. HTML 4.01 또는 HTML5를 사용해 보세요. 그런 다음 오류만 표시하는 대신 브라우저에 여전히 뭔가가 표시될 수 있습니다. 0xFFFF 문자를 문자 엔터티 참조로 바꿔보세요. 어쨌든 거기에 왜 0xFFFF가 있는지 궁금합니다. 이는 확실히 0xFFFF가 아닌 악센트가 있는 e인 것으로 보입니다.