From 5eb408a3bb8df204452f0b931a254dad5f0cf35b Mon Sep 17 00:00:00 2001 From: David Tardon Date: Thu, 10 Jul 2014 16:14:08 +0200 Subject: fdo#81044 detect UTF-8 BOM too Change-Id: I6fd041780b889e2125b916964ba27d032667dcd6 --- svtools/source/svrtf/svparser.cxx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'svtools') diff --git a/svtools/source/svrtf/svparser.cxx b/svtools/source/svrtf/svparser.cxx index 51783a654f26..da904a3009e5 100644 --- a/svtools/source/svrtf/svparser.cxx +++ b/svtools/source/svrtf/svparser.cxx @@ -185,6 +185,25 @@ sal_Unicode SvParser::GetNextChar() } } } + else if( 0xef == c1 || 0xbb == c1 ) // check for UTF-8 BOM + { + rInput.ReadUChar( c2 ); + bErr = rInput.IsEof() || rInput.GetError(); + if( !bErr ) + { + if( ( 0xef == c1 && 0xbb == c2 ) || ( 0xbb == c1 && 0xef == c2 ) ) + { + unsigned char c3(0); + rInput.ReadUChar( c3 ); + bErr = rInput.IsEof() || rInput.GetError(); + if( !bErr && ( 0xbf == c3 ) ) + { + eSrcEnc = RTL_TEXTENCODING_UTF8; + bSeekBack = false; + } + } + } + } } if( bSeekBack ) rInput.Seek( 0 ); -- cgit