001    /*
002     * Copyright 1999-2001,2004 The Apache Software Foundation.
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     * 
008     *      http://www.apache.org/licenses/LICENSE-2.0
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */ 
016    
017    package org.apache.commons.workflow.util;
018    
019    
020    /**
021     * General purpose static utility methods for the Workflow engine.
022     *
023     * @version $Revision: 155475 $ $Date: 2005-02-26 13:31:11 +0000 (Sat, 26 Feb 2005) $
024     * @author Craig R. McClanahan
025     */
026    
027    public class WorkflowUtils {
028    
029    
030        /**
031         * Parse the character encoding from the specified content type header.
032         * If the content type is null, or there is no explicit character encoding,
033         * <code>null</code> is returned.
034         *
035         * @param contentType a content type header
036         */
037        public static String parseCharacterEncoding(String contentType) {
038    
039            if (contentType == null)
040                return (null);
041            int start = contentType.indexOf("charset=");
042            if (start < 0)
043                return (null);
044            String encoding = contentType.substring(start + 8);
045            int end = encoding.indexOf(';');
046            if (end >= 0)
047                encoding = encoding.substring(0, end);
048            encoding = encoding.trim();
049            if ((encoding.length() > 2) && (encoding.startsWith("\""))
050                && (encoding.endsWith("\"")))
051                encoding = encoding.substring(1, encoding.length() - 1);
052            return (encoding.trim());
053    
054        }
055    
056    
057    }