Так, например, когда я читаю символ π (\u03C0
) из файла с использованием API FileReader, я возвращаю символ pi, когда читаю его, используя FileReader.readAsText(blob)
, который ожидается. Но когда я использую FileReader.readAsBinaryString(blob)
, я получаю вместо этого результат \xcf\x80
, который, похоже, не имеет видимой корреляции с символом pi. Что происходит? (Это, вероятно, что-то делать с тем, как UTF-8/16 кодируется ...)Разница между readAsBinaryString и readAsText с использованием FileReader
ответ
Ну хорошо, если это все, что вам нужно ... :)
CF80
это кодировка UTF-8 для π.
FileReader.readAsText
учитывает кодировку файла. В частности, поскольку у вас есть файл, закодированный в UTF-8, может быть несколько байтов на символ. Читая его как текст, UTF-8 читается так, как есть, и вы получаете свою строку.
FileReader.readAsBinaryString
, с другой стороны, делает именно то, что он говорит. Он читает байтовый файл байтом. Он не распознает многобайтовые символы, что, в частности, является хорошей новостью для двоичных файлов (в основном ничего, кроме текстового файла). Поскольку π является двухбайтным символом, вы получаете два отдельных байта, которые составляют его в вашей строке.
Это различие можно увидеть во многих местах. В частности, когда кодирование теряется, и вы видите символы, такие как é, отображаемые как Ã ©.
- 1. Разница между readAsDataURL() и readAsArrayBuffer() и readAsText() в JavaScript FileReader
- 2. FileReader readAsBinaryString() изображения DOM Element
- 3. Javascript: подготовить объект изображения для FileReader readAsBinaryString
- 4. Комбинация ActiveXObject и readAsBinaryString()
- 5. Аргументы ReadAsText()
- 6. Phonegap FileReader readAsText возвращает значение null, но readAsDataURL работает
- 7. В чем разница между FileReader и FileInputStream в Java?
- 8. readAsDataURL из readAsBinaryString?
- 9. Выбор между FileReader и InputStreamReader
- 10. Разница между «использованием» и «областью»?
- 11. разница между использованием псевдонимов и их использованием
- 12. Разница между использованием ЦП и использованием ЦП?
- 13. Разница между использованием и использованием = для типов?
- 14. Javascript FileReader readAsText функция не недопонимает символы кодировки utf-8, такие как ä и ö
- 15. Проблемы с HTML5 FileReader
- 16. Использовать readAsBinaryString() без прослушивателя событий
- 17. Разница между использованием MockMvc с SpringBootTest и использованием WebMvcTest
- 18. Разница между использованием @RequestMapping с использованием метода и без него
- 19. разница между event.target и getelementbyid
- 20. Разница между использованием фабрики контроллера и NinjectHttpApplication?
- 21. Разница между использованием запросов.get() и requests.session(). Get()?
- 22. Разница между использованием и | операторов в JavaScript?
- 23. Разница между использованием AsyncTask.get() и onPostExecute()
- 24. Разница между использованием ID и onClick
- 25. Разница между типом и использованием std :: move()?
- 26. TypeError: Не удалось выполнить 'readAsText' в 'FileReader': параметр 1 не относится к типу 'Blob'
- 27. с использованием FileReader с выбранным входом
- 28. Разница между использованием ifstream и потока с cin и cout
- 29. Разница между ++ и +1
- 30. Разница между использованием .html() и .contents()
'CF80' - кодировка UTF-8 для π. – deceze
... о, ты прав ... спасибо! – gengkev
... это было, вероятно, слишком очевидно, но вы можете опубликовать это как ответ, если хотите. – gengkev