001/**
002 * Copyright 2010-2014 The Kuali Foundation
003 *
004 * Licensed under the Educational Community 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.opensource.org/licenses/ecl2.php
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 */
016package org.kuali.common.util;
017
018import static java.net.URLDecoder.decode;
019import static java.net.URLEncoder.encode;
020import static org.kuali.common.util.base.Exceptions.illegalState;
021import static org.kuali.common.util.base.Precondition.checkNotNull;
022
023import java.io.UnsupportedEncodingException;
024
025public final class Encodings {
026
027        private Encodings() {
028        }
029
030        public static final String UTF8 = "UTF-8";
031        public static final String ASCII = "US-ASCII";
032
033        public static final String encodeUTF8(String text) {
034                try {
035                        return encode(checkNotNull(text, "text"), UTF8);
036                } catch (UnsupportedEncodingException e) {
037                        throw illegalState(e); // Shouldn't happen. Spec requires JVM's to support UTF-8
038                }
039        }
040
041        public static final String decodeUTF8(String text) {
042                try {
043                        return decode(checkNotNull(text, "text"), UTF8);
044                } catch (UnsupportedEncodingException e) {
045                        throw illegalState(e); // Shouldn't happen. Spec requires JVM's to support UTF-8
046                }
047        }
048
049}