diff options
-rw-r--r-- | svtools/source/svrtf/svparser.cxx | 19 |
1 files changed, 19 insertions, 0 deletions
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 ); |