package app.navigps.utils;
import java.io.UnsupportedEncodingException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Grzegorz (vara) Warywoda
*/
public final class StringUtils {
private static String defaultEncoding = "UTF-8";
public static final String CURRENT_ENCODING = System.getProperty("file.encoding");
private static boolean doConvert = !isTheSame();
private static boolean isTheSame(){
return CURRENT_ENCODING.equals(getDefaultEncoding());
}
public static String encode(String str){
if(str == null){
return ""; //I dont know is it good idea
}
if(doConvert){
System.err.println("convert to "+getDefaultEncoding());
String retStr = str;
try {
retStr = new String(str.getBytes(getDefaultEncoding()),CURRENT_ENCODING);
System.out.println(""+str+" -> "+retStr);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(NaviLogger.LOGGER_NAME).log(Level.SEVERE, null, ex);
System.err.println(""+ex);
}
return retStr;
}else{
System.err.println("not need convert to UTF8");
}
return str;
}
public static String decode(String str){
if(str==null){
return "";
}
if(doConvert){
String retStr = str;
System.out.println("convert to "+CURRENT_ENCODING);
try {
retStr = new String(str.getBytes(CURRENT_ENCODING),getDefaultEncoding());
System.out.println(""+str+" -> "+retStr);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(NaviLogger.LOGGER_NAME).log(Level.SEVERE, null, ex);
System.err.println(""+ex);
}
return retStr;
}else{
System.err.println("not need convert to "+CURRENT_ENCODING);
}
return str;
}
/**
* @return the defaultEncoding
*/
public static String getDefaultEncoding() {
return new String(defaultEncoding);
}
/**
* @param aDefaultEncoding the defaultEncoding to set
*/
public static void setDefaultEncoding(String aDefaultEncoding) throws UnsupportedEncodingException {
"test".getBytes(aDefaultEncoding);
defaultEncoding = aDefaultEncoding;
doConvert = !isTheSame();
}
}