Tweak 7 bit guessing code

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1087788 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2011-04-01 16:27:03 +00:00
parent 9f40e3df71
commit aad03b8cd3

View File

@ -362,20 +362,18 @@ public class MAPIMessage extends POIDocument {
public void guess7BitEncoding() { public void guess7BitEncoding() {
try { try {
String[] headers = getHeaders(); String[] headers = getHeaders();
if(headers == null || headers.length == 0) { if(headers != null && headers.length > 0) {
return; // Look for a content type with a charset
} Pattern p = Pattern.compile("Content-Type:.*?charset=[\"']?(.*?)[\"']?");
for(String header : headers) {
// Look for a content type with a charset if(header.startsWith("Content-Type")) {
Pattern p = Pattern.compile("Content-Type:.*?charset=[\"']?(.*?)[\"']?"); Matcher m = p.matcher(header);
for(String header : headers) { if(m.matches()) {
if(header.startsWith("Content-Type")) { // Found it! Tell all the string chunks
Matcher m = p.matcher(header); String charset = m.group(1);
if(m.matches()) { set7BitEncoding(charset);
// Found it! Tell all the string chunks return;
String charset = m.group(1); }
set7BitEncoding(charset);
return;
} }
} }
} }
@ -384,17 +382,18 @@ public class MAPIMessage extends POIDocument {
// Nothing suitable in the headers, try HTML // Nothing suitable in the headers, try HTML
try { try {
String html = getHmtlBody(); String html = getHmtlBody();
if(html != null && html.length() > 0) {
// Look for a content type in the meta headers // Look for a content type in the meta headers
Pattern p = Pattern.compile( Pattern p = Pattern.compile(
"<META\\s+HTTP-EQUIV=\"Content-Type\"\\s+CONTENT=\"text/html;\\s+charset=(.*?)\"" "<META\\s+HTTP-EQUIV=\"Content-Type\"\\s+CONTENT=\"text/html;\\s+charset=(.*?)\""
); );
Matcher m = p.matcher(html); Matcher m = p.matcher(html);
if(m.find()) { if(m.find()) {
// Found it! Tell all the string chunks // Found it! Tell all the string chunks
String charset = m.group(1); String charset = m.group(1);
set7BitEncoding(charset); set7BitEncoding(charset);
return; return;
}
} }
} catch(ChunkNotFoundException e) {} } catch(ChunkNotFoundException e) {}
} }