use StandardCharsets

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1818628 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2017-12-19 00:23:52 +00:00
parent 2a63c7e75d
commit 819eac1f82
19 changed files with 43 additions and 50 deletions

View File

@ -24,7 +24,7 @@ import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.io.Writer; import java.io.Writer;
import java.nio.charset.Charset; import java.nio.charset.StandardCharsets;
import org.apache.poi.hwpf.model.StyleDescription; import org.apache.poi.hwpf.model.StyleDescription;
import org.apache.poi.hwpf.model.StyleSheet; import org.apache.poi.hwpf.model.StyleSheet;
@ -40,7 +40,7 @@ public final class Word2Forrest
@SuppressWarnings("unused") @SuppressWarnings("unused")
public Word2Forrest(HWPFDocument doc, OutputStream stream) throws IOException public Word2Forrest(HWPFDocument doc, OutputStream stream) throws IOException
{ {
_out = new OutputStreamWriter (stream, Charset.forName("UTF-8")); _out = new OutputStreamWriter (stream, StandardCharsets.UTF_8);
_doc = doc; _doc = doc;
init (); init ();

View File

@ -24,7 +24,7 @@ import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.PrintStream; import java.io.PrintStream;
import java.nio.charset.Charset; import java.nio.charset.StandardCharsets;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
@ -110,7 +110,7 @@ public class HPSFFileHandler extends POIFSFileHandler {
try { try {
System.setOut(psNew); System.setOut(psNew);
CopyCompare.main(new String[]{file.getAbsolutePath(), copyOutput.getAbsolutePath()}); CopyCompare.main(new String[]{file.getAbsolutePath(), copyOutput.getAbsolutePath()});
assertEquals("Equal" + NL, new String(bos.toByteArray(), Charset.forName("UTF-8"))); assertEquals("Equal" + NL, new String(bos.toByteArray(), StandardCharsets.UTF_8));
} finally { } finally {
System.setOut(ps); System.setOut(ps);
} }

View File

@ -18,7 +18,7 @@
package org.apache.poi.poifs.crypt; package org.apache.poi.poifs.crypt;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset; import java.nio.charset.StandardCharsets;
import org.apache.poi.EncryptedDocumentException; import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.poifs.crypt.standard.EncryptionRecord; import org.apache.poi.poifs.crypt.standard.EncryptionRecord;
@ -352,7 +352,7 @@ public class DataSpaceMapUtils {
} }
} }
return new String(data, 0, data.length, Charset.forName("UTF-8")); return new String(data, 0, data.length, StandardCharsets.UTF_8);
} }
public static void writeUtf8LPP4(LittleEndianOutput os, String str) { public static void writeUtf8LPP4(LittleEndianOutput os, String str) {
@ -360,7 +360,7 @@ public class DataSpaceMapUtils {
os.writeInt(str == null ? 0 : 4); os.writeInt(str == null ? 0 : 4);
os.writeInt(0); os.writeInt(0);
} else { } else {
byte buf[] = str.getBytes(Charset.forName("UTF-8")); byte buf[] = str.getBytes(StandardCharsets.UTF_8);
os.writeInt(buf.length); os.writeInt(buf.length);
os.write(buf); os.write(buf);
int scratchBytes = buf.length%4; int scratchBytes = buf.length%4;

View File

@ -19,11 +19,11 @@ package org.apache.poi.poifs.filesystem;
import static org.apache.poi.poifs.common.POIFSConstants.OOXML_FILE_HEADER; import static org.apache.poi.poifs.common.POIFSConstants.OOXML_FILE_HEADER;
import static org.apache.poi.poifs.common.POIFSConstants.RAW_XML_FILE_HEADER; import static org.apache.poi.poifs.common.POIFSConstants.RAW_XML_FILE_HEADER;
import static java.nio.charset.StandardCharsets.UTF_8;
import java.io.BufferedInputStream; import java.io.BufferedInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.nio.charset.Charset;
import org.apache.poi.poifs.storage.HeaderBlockConstants; import org.apache.poi.poifs.storage.HeaderBlockConstants;
import org.apache.poi.util.IOUtils; import org.apache.poi.util.IOUtils;
@ -76,7 +76,7 @@ public enum FileMagic {
/** PDF document */ /** PDF document */
PDF("%PDF"), PDF("%PDF"),
/** Some different HTML documents */ /** Some different HTML documents */
HTML("<!DOCTYP".getBytes(Charset.forName("UTF-8")), "<html".getBytes(Charset.forName("UTF-8"))), HTML("<!DOCTYP".getBytes(UTF_8), "<html".getBytes(UTF_8)),
// keep UNKNOWN always as last enum! // keep UNKNOWN always as last enum!
/** UNKNOWN magic */ /** UNKNOWN magic */
UNKNOWN(new byte[0]); UNKNOWN(new byte[0]);

View File

@ -25,8 +25,7 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.io.PrintStream; import java.io.PrintStream;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import org.apache.commons.codec.CharEncoding;
/** /**
* dump data in hexadecimal format * dump data in hexadecimal format
@ -34,7 +33,7 @@ import org.apache.commons.codec.CharEncoding;
@Internal @Internal
public class HexDump { public class HexDump {
public static final String EOL = System.getProperty("line.separator"); public static final String EOL = System.getProperty("line.separator");
public static final Charset UTF8 = Charset.forName(CharEncoding.UTF_8); public static final Charset UTF8 = StandardCharsets.UTF_8;
private HexDump() { private HexDump() {
// all static methods, so no need for a public constructor // all static methods, so no need for a public constructor

View File

@ -17,10 +17,11 @@
package org.apache.poi.util; package org.apache.poi.util;
import static java.nio.charset.StandardCharsets.UTF_8;
import java.io.FilterInputStream; import java.io.FilterInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.Arrays; import java.util.Arrays;
/** /**
@ -51,8 +52,6 @@ public class ReplacingInputStream extends FilterInputStream {
UNBUFFER UNBUFFER
} }
private static final Charset UTF8 = Charset.forName("UTF-8");
/** /**
* Replace occurrences of pattern in the input. Note: input is assumed to be UTF-8 encoded. If not the case use byte[] based pattern and replacement. * Replace occurrences of pattern in the input. Note: input is assumed to be UTF-8 encoded. If not the case use byte[] based pattern and replacement.
* @param in input * @param in input
@ -60,7 +59,7 @@ public class ReplacingInputStream extends FilterInputStream {
* @param replacement the replacement or null * @param replacement the replacement or null
*/ */
public ReplacingInputStream(InputStream in, String pattern, String replacement) { public ReplacingInputStream(InputStream in, String pattern, String replacement) {
this(in, pattern.getBytes(UTF8), replacement==null ? null : replacement.getBytes(UTF8)); this(in, pattern.getBytes(UTF_8), replacement==null ? null : replacement.getBytes(UTF_8));
} }
/** /**

View File

@ -18,6 +18,7 @@
package org.apache.poi.util; package org.apache.poi.util;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.Locale; import java.util.Locale;
@ -28,12 +29,12 @@ import java.util.Map;
*/ */
@Internal @Internal
public class StringUtil { public class StringUtil {
protected static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1"); protected static final Charset ISO_8859_1 = StandardCharsets.ISO_8859_1;
//arbitrarily selected; may need to increase //arbitrarily selected; may need to increase
private static final int MAX_RECORD_LENGTH = 10000000; private static final int MAX_RECORD_LENGTH = 10000000;
public static final Charset UTF16LE = Charset.forName("UTF-16LE"); public static final Charset UTF16LE = StandardCharsets.UTF_16LE;
public static final Charset UTF8 = Charset.forName("UTF-8"); public static final Charset UTF8 = StandardCharsets.UTF_8;
public static final Charset WIN_1252 = Charset.forName("cp1252"); public static final Charset WIN_1252 = Charset.forName("cp1252");
public static final Charset BIG5 = Charset.forName("Big5"); public static final Charset BIG5 = Charset.forName("Big5");

View File

@ -20,7 +20,7 @@ package org.apache.poi.openxml4j.opc;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.charset.Charset; import java.nio.charset.StandardCharsets;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
@ -747,7 +747,7 @@ public final class PackagingURIHelper {
int n = s.length(); int n = s.length();
if (n == 0) return s; if (n == 0) return s;
ByteBuffer bb = ByteBuffer.wrap(s.getBytes(Charset.forName("UTF-8"))); ByteBuffer bb = ByteBuffer.wrap(s.getBytes(StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
while (bb.hasRemaining()) { while (bb.hasRemaining()) {
int b = bb.get() & 0xff; int b = bb.get() & 0xff;

View File

@ -33,7 +33,7 @@ import java.net.InetAddress;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.Proxy; import java.net.Proxy;
import java.net.URL; import java.net.URL;
import java.nio.charset.Charset; import java.nio.charset.StandardCharsets;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.SecureRandom; import java.security.SecureRandom;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
@ -129,7 +129,7 @@ public class TSPTimeStampService implements TimeStampService {
if (signatureConfig.getTspUser() != null) { if (signatureConfig.getTspUser() != null) {
String userPassword = signatureConfig.getTspUser() + ":" + signatureConfig.getTspPass(); String userPassword = signatureConfig.getTspUser() + ":" + signatureConfig.getTspPass();
String encoding = DatatypeConverter.printBase64Binary(userPassword.getBytes(Charset.forName("iso-8859-1"))); String encoding = DatatypeConverter.printBase64Binary(userPassword.getBytes(StandardCharsets.ISO_8859_1));
huc.setRequestProperty("Authorization", "Basic " + encoding); huc.setRequestProperty("Authorization", "Basic " + encoding);
} }

View File

@ -18,7 +18,7 @@
package org.apache.poi.xssf.binary; package org.apache.poi.xssf.binary;
import java.nio.charset.Charset; import java.nio.charset.StandardCharsets;
import org.apache.poi.POIXMLException; import org.apache.poi.POIXMLException;
import org.apache.poi.util.Internal; import org.apache.poi.util.Internal;
@ -54,7 +54,7 @@ public class XSSFBUtils {
throw new XSSFBParseException("trying to read beyond data length:" + throw new XSSFBParseException("trying to read beyond data length:" +
"offset="+offset+", numBytes="+numBytes+", data.length="+data.length); "offset="+offset+", numBytes="+numBytes+", data.length="+data.length);
} }
sb.append(new String(data, offset, numBytes, Charset.forName("UTF-16LE"))); sb.append(new String(data, offset, numBytes, StandardCharsets.UTF_16LE));
numBytes+=4; numBytes+=4;
return numBytes; return numBytes;
} }
@ -80,7 +80,7 @@ public class XSSFBUtils {
if (offset+numBytes > data.length) { if (offset+numBytes > data.length) {
throw new XSSFBParseException("trying to read beyond data length"); throw new XSSFBParseException("trying to read beyond data length");
} }
sb.append(new String(data, offset, numBytes, Charset.forName("UTF-16LE"))); sb.append(new String(data, offset, numBytes, StandardCharsets.UTF_16LE));
numBytes+=4; numBytes+=4;
return numBytes; return numBytes;
} }

View File

@ -19,7 +19,7 @@ package org.apache.poi.xssf.usermodel;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.InputStream; import java.io.InputStream;
import java.nio.charset.Charset; import java.nio.charset.StandardCharsets;
import java.util.EnumMap; import java.util.EnumMap;
import java.util.Map; import java.util.Map;
@ -403,7 +403,7 @@ public enum XSSFBuiltinTableStyle {
// hack because I can't figure out how to get XMLBeans to parse a sub-element in a standalone manner // hack because I can't figure out how to get XMLBeans to parse a sub-element in a standalone manner
// - build a fake styles.xml file with just this built-in // - build a fake styles.xml file with just this built-in
StylesTable styles = new StylesTable(); StylesTable styles = new StylesTable();
styles.readFrom(new ByteArrayInputStream(styleXML(dxfsNode, tableStyleNode).getBytes(Charset.forName("UTF-8")))); styles.readFrom(new ByteArrayInputStream(styleXML(dxfsNode, tableStyleNode).getBytes(StandardCharsets.UTF_8)));
styleMap.put(builtIn, new XSSFBuiltinTypeStyleStyle(builtIn, styles.getExplicitTableStyle(styleName))); styleMap.put(builtIn, new XSSFBuiltinTypeStyleStyle(builtIn, styles.getExplicitTableStyle(styleName)));
} }
} finally { } finally {

View File

@ -28,7 +28,7 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset; import java.nio.charset.StandardCharsets;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
@ -94,7 +94,7 @@ public class TestHxxFEncryption {
} }
private static String x(String base64) throws IOException { private static String x(String base64) throws IOException {
return new String(RawDataUtil.decompress(base64), Charset.forName("UTF-8")); return new String(RawDataUtil.decompress(base64), StandardCharsets.UTF_8);
} }
@Test @Test

View File

@ -22,6 +22,7 @@ package org.apache.poi.xssf.streaming;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static java.nio.charset.StandardCharsets.UTF_8;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
@ -102,11 +103,6 @@ public final class TestSXSSFWorkbookWithCustomZipEntrySource {
opc.close(); opc.close();
} }
// Java 7 and above:
// import static java.nio.charset.StandardCharsets.UTF_8;
// Java 6 and below:
private static final Charset UTF_8 = Charset.forName("UTF-8");
@Test @Test
public void validateTempFilesAreEncrypted() throws IOException { public void validateTempFilesAreEncrypted() throws IOException {
TempFileRecordingSXSSFWorkbookWithCustomZipEntrySource workbook = new TempFileRecordingSXSSFWorkbookWithCustomZipEntrySource(); TempFileRecordingSXSSFWorkbookWithCustomZipEntrySource workbook = new TempFileRecordingSXSSFWorkbookWithCustomZipEntrySource();

View File

@ -23,11 +23,8 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.nio.charset.StandardCharsets;
import java.nio.charset.Charset;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
@ -86,7 +83,7 @@ public final class TestUnfixedBugs {
private void verifyBug54084Unicode(Workbook wb) { private void verifyBug54084Unicode(Workbook wb) {
// expected data is stored in UTF-8 in a text-file // expected data is stored in UTF-8 in a text-file
byte data[] = HSSFTestDataSamples.getTestDataFileContent("54084 - Greek - beyond BMP.txt"); byte data[] = HSSFTestDataSamples.getTestDataFileContent("54084 - Greek - beyond BMP.txt");
String testData = new String(data, Charset.forName("UTF-8")).trim(); String testData = new String(data, StandardCharsets.UTF_8).trim();
Sheet sheet = wb.getSheetAt(0); Sheet sheet = wb.getSheetAt(0);
Row row = sheet.getRow(0); Row row = sheet.getRow(0);

View File

@ -22,7 +22,7 @@ import static org.junit.Assert.assertArrayEquals;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset; import java.nio.charset.StandardCharsets;
import org.apache.poi.util.IOUtils; import org.apache.poi.util.IOUtils;
import org.apache.poi.util.ReplacingInputStream; import org.apache.poi.util.ReplacingInputStream;
@ -89,6 +89,6 @@ public final class TestEvilUnclosedBRFixingInputStream {
} }
private static byte[] getBytes(String str) { private static byte[] getBytes(String str) {
return str.getBytes(Charset.forName("UTF-8")); return str.getBytes(StandardCharsets.UTF_8);
} }
} }

View File

@ -18,6 +18,7 @@
package org.apache.poi.hdgf.chunks; package org.apache.poi.hdgf.chunks;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
/** /**
* A chunk header from v11+ * A chunk header from v11+
@ -62,6 +63,6 @@ public final class ChunkHeaderV11 extends ChunkHeaderV6 {
@Override @Override
public Charset getChunkCharset() { public Charset getChunkCharset() {
return Charset.forName("UTF-16LE"); return StandardCharsets.UTF_16LE;
} }
} }

View File

@ -17,6 +17,7 @@
package org.apache.poi.hemf.record; package org.apache.poi.hemf.record;
import static java.nio.charset.StandardCharsets.UTF_16LE;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.EOFException; import java.io.EOFException;
@ -39,7 +40,6 @@ import org.apache.poi.util.RecordFormatException;
@Internal @Internal
public class HemfText { public class HemfText {
private static final Charset UTF16LE = Charset.forName("UTF-16LE");
private static final int MAX_RECORD_LENGTH = 1_000_000; private static final int MAX_RECORD_LENGTH = 1_000_000;
public static class ExtCreateFontIndirectW extends UnimplementedHemfRecord { public static class ExtCreateFontIndirectW extends UnimplementedHemfRecord {
@ -162,11 +162,11 @@ public class HemfText {
@Override @Override
protected Charset getEncodingHint() { protected Charset getEncodingHint() {
return UTF16LE; return UTF_16LE;
} }
public String getText() throws IOException { public String getText() throws IOException {
return getText(UTF16LE); return getText(UTF_16LE);
} }
} }

View File

@ -25,7 +25,7 @@ import java.io.InputStream;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.io.StringWriter; import java.io.StringWriter;
import java.io.Writer; import java.io.Writer;
import java.nio.charset.Charset; import java.nio.charset.StandardCharsets;
import org.apache.poi.hslf.record.RecordTypes; import org.apache.poi.hslf.record.RecordTypes;
import org.apache.poi.hslf.usermodel.HSLFSlideShow; import org.apache.poi.hslf.usermodel.HSLFSlideShow;
@ -212,7 +212,7 @@ public final class PPTXMLDump {
if (outFile){ if (outFile){
FileOutputStream fos = new FileOutputStream(ppt.getName() + ".xml"); FileOutputStream fos = new FileOutputStream(ppt.getName() + ".xml");
OutputStreamWriter out = new OutputStreamWriter(fos, Charset.forName("UTF8")); OutputStreamWriter out = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
dump.dump(out); dump.dump(out);
out.close(); out.close();
} else { } else {

View File

@ -18,7 +18,7 @@
package org.apache.poi.hwmf.record; package org.apache.poi.hwmf.record;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset; import java.nio.charset.StandardCharsets;
import org.apache.poi.common.usermodel.fonts.FontCharset; import org.apache.poi.common.usermodel.fonts.FontCharset;
import org.apache.poi.common.usermodel.fonts.FontFamily; import org.apache.poi.common.usermodel.fonts.FontFamily;
@ -369,7 +369,7 @@ public class HwmfFont implements FontInfo {
buf[readBytes++] = b = leis.readByte(); buf[readBytes++] = b = leis.readByte();
} while (b != 0 && b != -1 && readBytes <= 32); } while (b != 0 && b != -1 && readBytes <= 32);
facename = new String(buf, 0, readBytes-1, Charset.forName("ISO-8859-1")); facename = new String(buf, 0, readBytes-1, StandardCharsets.ISO_8859_1);
return 5*LittleEndianConsts.SHORT_SIZE+8*LittleEndianConsts.BYTE_SIZE+readBytes; return 5*LittleEndianConsts.SHORT_SIZE+8*LittleEndianConsts.BYTE_SIZE+readBytes;
} }