Package com.suncode.pwfl.util.io
Class FileEncodingUtils
java.lang.Object
com.suncode.pwfl.util.io.FileEncodingUtils
Klasa pomocnicza zawierające metody związane z kodowaniem plików.
- Author:
- Cezary Kozar
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Charset
detectBomEncoding
(InputStream inputStream) Funkcja odczytuje kodowanie na podstawie znacznika BOM zawartego na początku strumienia.static Charset
detectXmlEncoding
(File xmlFile) Wykrywa kodowanie pliku xml na podstawie przesłanek zawartych na stronie: Extensible Markup Language (XML) 1.0 w rozdziale Autodetection of Character Encodingsstatic Charset
detectXmlEncoding
(InputStream inputStream) Wykrywa kodowanie pliku xml na podstawie przesłanek zawartych na stronie: Extensible Markup Language (XML) 1.0 w rozdziale Autodetection of Character Encodings
-
Constructor Details
-
FileEncodingUtils
public FileEncodingUtils()
-
-
Method Details
-
detectXmlEncoding
Wykrywa kodowanie pliku xml na podstawie przesłanek zawartych na stronie: Extensible Markup Language (XML) 1.0 w rozdziale Autodetection of Character Encodings- Parameters:
xmlFile
- dowolny plik xml- Returns:
- używane kodowanie pliku lub kodowanie domyślne @{link
Charset.defaultCharset()
- Throws:
IOException
-
detectXmlEncoding
Wykrywa kodowanie pliku xml na podstawie przesłanek zawartych na stronie: Extensible Markup Language (XML) 1.0 w rozdziale Autodetection of Character EncodingsOdczytanie kodowania pliku musi być jak najszybsze, dlatego plik nie jest parsowany. Ustalenie kodowania pliku xml przebiega następująco: 1. sprawdzany jest znacznik BOM, jeżeli znacznik taki jest obecny, zwracane jest kodowanie zapisane w tym znaczniku 2. odczytywana jest rodzina kodowania, potrzebna do odczytania definicji pliku xml w postaci: <?xml version="1.0" encoding="UTF-8"?> 3. na podstawie wykrytego kodowania odczytywany jest atrybut encoding nagłówka Jeżeli któraś z operacji się nie powiedzie, zwracane jest domyślne kodowanie JVM
Charset.defaultCharset()
.- Parameters:
inputStream
- strumień pliku xml. Strumień musi wspierać metodęInputStream.mark(int)
- Returns:
- Używane kodowanie pliku xml
- Throws:
IOException
-
detectBomEncoding
Funkcja odczytuje kodowanie na podstawie znacznika BOM zawartego na początku strumienia. Jeżeli znacznik BOM istnieje, zwracane jest kodowanie strumienia. Po odczytaniu strumień jest resetowany oraz pomijane są bajty znacznika BOM.- Parameters:
inputStream
- strumień danych- Returns:
- kodowanie odczytane ze znacznika BOM lub
null
jeżeli taki znacznik nie istnieje. - Throws:
IOException
-