blob: 84554589b6e1d132f247a920c2036180d37493c6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2002, 2007 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM - Initial API and implementation
*******************************************************************************/
package org.eclipse.core.internal.resources.refresh.win32;
import java.io.*;
/**
* Performs character to byte conversion for passing strings to native win32
* methods.
*/
public class Convert {
/*
* Obtains the default encoding on this platform
*/
private static String defaultEncoding=
new InputStreamReader(new ByteArrayInputStream(new byte[0])).getEncoding();
/**
* Converts the given String to bytes using the platforms default
* encoding.
*
* @param target The String to be converted, can not be <code>null</code>.
* @return byte[] The resulting bytes, or <code>null</code>.
*/
/**
* Calling String.getBytes() creates a new encoding object and other garbage.
* This can be avoided by calling String.getBytes(String encoding) instead.
*/
public static byte[] toPlatformBytes(String target) {
if (defaultEncoding == null)
return target.getBytes();
// try to use the default encoding
try {
return target.getBytes(defaultEncoding);
} catch (UnsupportedEncodingException e) {
// null the default encoding so we don't try it again
defaultEncoding = null;
return target.getBytes();
}
}
}