Introducing Actuate Information Console : About Actuate Information Console architecture : Working with Actuate Information Console URIs : Using a special character in a URI

Using a special character in a URI

Actuate Information Console URIs use encoding for characters that a browser can misinterpret. The following example uses hexadecimal encoding in the Information Console URI to display the report, Msbargph.roi, from an Encyclopedia volume:

http://phish:8900/iportal/activePortal/viewer/viewframeset.jsp?name=%2fmsbargph%2eroi%3b1&volumeProfile=PHISH

You do not have to use hexadecimal encoding in all circumstances. Use the encoding only when the possibility of misinterpreting a character exists. The following unencoded URI displays the same report as the preceding URI:

http://phish:8900/iportal/activePortal/viewer/viewframeset.jsp?name=\msbargph.roi;1&volumeProfile=PHISH

Always encode characters that have a specific meaning in a URI when you use them in other ways. Table 1-1 describes the available character substitutions. An ampersand introduces a parameter in a URI, so you must encode an ampersand that appears in a value string. For example, use:

&company=AT%26T

instead of:

&company=AT&T

If you customize Actuate Information Console by writing code that creates URI parameters, encode the entire parameter value string with the encode( ) method. The encode( ) method is included in encoder.js, which is provided in the Actuate Information Console <context root>/js directory. The following example encodes the folder name /Training/Sub Folder before executing the getFolderItems action:

<%-- Import the StaticFuncs class. --%>
<%@ page import="com.actuate.reportcast.utils.*" %>
 
<%
  String url = "http://localhost:8900/iportal/getfolderitems.do?folder=" +
  StaticFuncs.encode("/Training/Sub Folder");
  response.sendRedirect(url);
%>

The encode( ) method converts the folder parameter value from:

/Training/Sub Folder

to:

%2fTraining%2fSub%20Folder

About UTF-8 encoding

All communication between Information Console and BIRT iServer uses UTF-8 encoding. UTF-8 encoding is also the default encoding that web browsers support. For 8-bit (single byte) characters, UTF-8 content appears the same as ANSI content. However, if extended characters are used (typically for languages that require large character sets), UTF-8 encodes these characters with two or more bytes.


(c) Copyright Actuate Corporation 2011