Here you can find the source of toCharset(final String str, final String charset, int judgeCharsetLength)
public static String toCharset(final String str, final String charset, int judgeCharsetLength)
/*//from www .j a v a2s . co m * Copyright (c) 2013. wyouflf (wyouflf@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import org.apache.http.protocol.HTTP; import java.util.ArrayList; import java.util.List; public class Main{ public static final String DEFAULT_ENCODING_CHARSET = HTTP.DEFAULT_CONTENT_CHARSET; public static final List<String> SUPPORT_CHARSET = new ArrayList<String>(); public static String toCharset(final String str, final String charset, int judgeCharsetLength) { try { String oldCharset = getEncoding(str, judgeCharsetLength); return new String(str.getBytes(oldCharset), charset); } catch (Throwable ex) { LogUtils.w(ex); return str; } } public static String getEncoding(final String str, int judgeCharsetLength) { String encode = CharsetUtils.DEFAULT_ENCODING_CHARSET; for (String charset : SUPPORT_CHARSET) { if (isCharset(str, charset, judgeCharsetLength)) { encode = charset; break; } } return encode; } public static boolean isCharset(final String str, final String charset, int judgeCharsetLength) { try { String temp = str.length() > judgeCharsetLength ? str .substring(0, judgeCharsetLength) : str; return temp.equals(new String(temp.getBytes(charset), charset)); } catch (Throwable e) { return false; } } }