blob: 8ece2b799f50b9d1c8480c0342490ad984091ba2 [file] [log] [blame]
/*
* Copyright (c) 2013, the Dart project authors.
*
* Licensed under the Eclipse Public License v1.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.eclipse.org/legal/epl-v10.html
*
* 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.
*/
package com.google.dart.engine.utilities.io;
/**
* The class {@code UriUtilities} implements utility methods used to manipulate URIs.
*
* @coverage dart.engine.utilities
*/
public final class UriUtilities {
/**
* Convert from a non-URI encoded string to a URI encoded one.
*
* @return the URI encoded input string
*/
public static String encode(String str) {
StringBuilder builder = new StringBuilder(str.length() * 2);
for (char c : str.toCharArray()) {
switch (c) {
case '%':
case '?':
case ';':
case '#':
case '"':
case '\'':
case '<':
case '>':
case ' ':
// ' ' ==> "%20"
builder.append('%');
builder.append(Integer.toHexString(c));
break;
default:
builder.append(c);
break;
}
}
return builder.toString();
}
/**
* Disallow the creation of instances of this class.
*/
private UriUtilities() {
}
}