Является ли 0xF8 допустимым байтом в XML-документе в кодировке UTF-8? - PullRequest
4 голосов
/ 26 января 2011

Я получаю документ, который претендует на UTF-8 (<?xml version="1.0" encoding="UTF-8"?>).В прошлом у меня были некоторые проблемы, когда декларация кодирования от отправителя не была настолько надежной (т. Е. Документы объявлялись с заданной кодировкой, хотя на самом деле их нет), поэтому я пытаюсь проверить, используя http://utf8checker.codeplex.com/ Согласно этому инструменту, байт 0xF8 означает, что этот документ не имеет кодировки UTF-8.

Однако, наоборот, на этой странице перечисляется норвежский символ 'ø', представленный в UTF-8 как 0xF8.(Страница на норвежском, однако, данные, на которые я ссылаюсь, основаны на таблице внизу страницы.)

Может кто-нибудь помочь мне разобраться?Я чувствую себя довольно смущенным здесь.

Спасибо!

Ответы [ 3 ]

7 голосов
/ 26 января 2011

ø - это U + 00F8, и, поскольку он отсутствует в ASCII, он не может быть единым кодовым блоком UTF-8.Он представлен 0xC3 0xB8 в UTF-8 .Следовательно, если где-то в документе где-то стоит 0xF8, то да, это недействительный UTF-8.

Похоже, что в документе используется код Latin-1 или кодовая страница Windows 1252.

5 голосов
/ 26 января 2011

Я не думаю, что эта страница очень надежна, на ней также написано «UTF-8 = UCS-1».

Проверка Википедия , F8 может использоваться только как первый байт 5-байтовой последовательности UTF-8, но в настоящее время не существует символов Unicode, которые бы требовали 5-байтового кодирования. Так что нет.

3 голосов
/ 26 января 2011

Инструмент utf8checker правильный, а страница, на которую вы ссылаетесь, неправильная.UTF-8 представляет «ø» 0xC3 0xB8 (два байта).

http://www.fileformat.info/info/unicode/char/f8/index.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...