|
What this is
Other links
The source code/** * @(#)TranscodeUtil.java 1.0 2001/09/25 * * Copyleft 2001 by Steve Excellent Lee, */ package org.bulbul.webmail.util; import java.io.UnsupportedEncodingException; import java.util.Locale; import javax.mail.internet.MimeUtility; /** * TranscodeUtil. * * Provides transcoding utilities. * * @author Steve Excellent Lee. * @version 1.0 2000 */ public class TranscodeUtil { /** * Why we need * org.bulbul.util.TranscodeUtil.transcodeThenEncodeByLocale()? * * Because we specify client browser's encoding to UTF-8, IE seems * to send all data encoded in UTF-8. That means the byte sequences * we received are all UTF-8 bytes. However, strings read from HTTP * is ISO8859_1 encoded, that's we need to transcode them (usually * from ISO8859_1 to UTF-8. * Next we encode those strings using MimeUtility.encodeText() depending * on user's locale. Since MimeUtility.encodeText() is used to convert * the strings into its transmission format, finally we can use the * strings in the outgoing e-mail, then receiver's email agent is * responsible for decoding the strings. * * As described in JavaMail document, MimeUtility.encodeText() conforms * to RFC2047 and as a result, we'll get strings like "=?Big5?B......". * @param sourceString String to be encoded * @param sourceStringEncoding The encoding to decode `sourceString' * string. If `sourceStringEncoding' * is null, use JVM's default enconding. * @param Locale prefered locale * * @return empty string(prevent NullPointerException) if sourceString * is null or empty(""); * otherwise RFC2047 conformed string, eg, "=?Iso8859-1?Q....." */ public static String transcodeThenEncodeByLocale( String sourceString, String sourceStringEncoding, Locale locale) throws java.io.UnsupportedEncodingException { String str; if ((sourceString == null) || (sourceString.equals(""))) return ""; // Transcode to UTF-8 if ((sourceStringEncoding == null) || (sourceStringEncoding.equals(""))) str = new String(sourceString.getBytes(), "UTF-8"); else str = new String(sourceString.getBytes(sourceStringEncoding),"UTF-8"); // Encode text if (locale.getLanguage().equals("zh") && locale.getCountry().equals("TW")) { return MimeUtility.encodeText(str, "Big5", null); } else { return MimeUtility.encodeText(str); } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.