Конфликт между UTF-8 нормализованными формами кодирования для акцентов - PullRequest
1 голос
/ 24 августа 2010

У меня ошибка с нормализацией UTF-8:

Насколько я понял, есть (по крайней мере) два способа написать 'é' в UTF-8: CC 81 и C3 A9.

[После перехода с Mac / OSX на ПК / Linux] у меня теперь есть конфликт между путями, которые я храню в моей базе данных, и фактической структурой файловой системы, которая мешает мне правильно обращаться к моим файлам ...

С помощью java.text.Normalizer я выяснил, что в FS у меня есть:

NFD true
NFC false
NFKD true
NFKC false

находясь в базе данных (и с клавиатуры), у меня есть:

NFD false
NFC true
NFKD false
NFKC true

Какой из этих четырех нормализованных форм я должен соответствовать? Как я могу (автоматически) исправить кодировку каталогов файловой системы?


EDIT2 : проблема совсем не в том, о чем я думал в начале, поэтому все, что ниже, вычеркнуто.

Знаете ли вы, есть ли какое-либо правило (RFC), определяющее обработку file:// URL-адресов?

Меня беспокоит вопрос об акцентах, Я пытаюсь получить доступ к картинке на

file:///other/Web/data/images/2005/2005-12-31 Fin d'année/IMGP0012.JPG

но это не работает, РЕДАКТИРОВАТЬ : конечно, оно не работает с &eacute в URL ...

однако, предложение Гамбо

file:///other/Web/data/images/2005/2005-12-31%20Fin%20d'ann%C3%A9e/IMGP0012.JPG

тоже не работает, но (Firefox-> Copy Link Location)

file:///other/Web/data/images/2005/2005-12-31%20Fin%20d%27anne%CC%81e

все в порядке.

существует ли какой-либо стандартный способ доступа к этим данным в локальной файловой системе, или я должен попробовать все доступные кодировки ...?

(мой код написан на Java, и я тестирую его с FF 3.6)

Ответы [ 2 ]

4 голосов
/ 24 августа 2010

Вам необходимо кодировать эти символы с помощью процентного кодирования .Попробуйте это:

file:///other/Web/data/images/2005/2005-12-31%20Fin%20d'ann%C3%A9e/IMGP0012.JPG

Здесь %C3%A9 представляет é в кодировке UTF-8.Возможно, вам нужно изменить кодировку символов, если ваше приложение ожидает кодировку символов, отличную от UTF-8.

1 голос
/ 15 ноября 2010

Я наконец «нормализовал» (переименовал) каталоги моей файловой системы, в соответствии с именами, хранящимися в базе данных, OSX все испортил!

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