it.tidalwave.mobile.android.util.UriEncoder Maven / Gradle / Ivy
/***********************************************************************************************************************
*
* blueBill Mobile - Android - open source birding
* Copyright (C) 2009-2011 by Tidalwave s.a.s. (http://www.tidalwave.it)
*
***********************************************************************************************************************
*
* 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.
*
***********************************************************************************************************************
*
* WWW: http://bluebill.tidalwave.it/mobile
* SCM: https://java.net/hg/bluebill-mobile~android-src
*
**********************************************************************************************************************/
package it.tidalwave.mobile.android.util;
import javax.annotation.CheckForNull;
/***********************************************************************************************************************
*
* @author Fabrizio Giudici
* @version $Id$
*
**********************************************************************************************************************/
public final class UriEncoder
{
@CheckForNull
public static String uriEncoded (final @CheckForNull String string)
{
if (string == null)
{
return null;
}
final StringBuffer buffer = new StringBuffer(string.length());
for (final char c : string.toCharArray())
{
switch (c)
{
case '#':
buffer.append("%23");
break;
case '%':
buffer.append("%25");
break;
case '\'':
buffer.append("%27");
break;
case '?':
buffer.append("%3f");
break;
default:
if ((int)c >= 128)
{
buffer.append(String.format("%%%x", (int)c));
}
else
{
buffer.append(c);
}
}
}
return buffer.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy