summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--svtools/source/svrtf/svparser.cxx19
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 );