<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link rel="previous" href="Netencoding.Url.html"> <link rel="Up" href="Netencoding.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of class attributes" rel=Appendix href="index_attributes.html"> <link title="Index of class methods" rel=Appendix href="index_methods.html"> <link title="Index of classes" rel=Appendix href="index_classes.html"> <link title="Index of class types" rel=Appendix href="index_class_types.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Uq_gtk" rel="Chapter" href="Uq_gtk.html"> <link title="Equeue" rel="Chapter" href="Equeue.html"> <link title="Unixqueue" rel="Chapter" href="Unixqueue.html"> <link title="Uq_engines" rel="Chapter" href="Uq_engines.html"> <link title="Uq_socks5" rel="Chapter" href="Uq_socks5.html"> <link title="Unixqueue_mt" rel="Chapter" href="Unixqueue_mt.html"> <link title="Equeue_intro" rel="Chapter" href="Equeue_intro.html"> <link title="Uq_ssl" rel="Chapter" href="Uq_ssl.html"> <link title="Uq_tcl" rel="Chapter" href="Uq_tcl.html"> <link title="Netcgi_common" rel="Chapter" href="Netcgi_common.html"> <link title="Netcgi" rel="Chapter" href="Netcgi.html"> <link title="Netcgi_ajp" rel="Chapter" href="Netcgi_ajp.html"> <link title="Netcgi_scgi" rel="Chapter" href="Netcgi_scgi.html"> <link title="Netcgi_cgi" rel="Chapter" href="Netcgi_cgi.html"> <link title="Netcgi_fcgi" rel="Chapter" href="Netcgi_fcgi.html"> <link title="Netcgi_dbi" rel="Chapter" href="Netcgi_dbi.html"> <link title="Netcgi1_compat" rel="Chapter" href="Netcgi1_compat.html"> <link title="Netcgi_test" rel="Chapter" href="Netcgi_test.html"> <link title="Netcgi_porting" rel="Chapter" href="Netcgi_porting.html"> <link title="Netcgi_plex" rel="Chapter" href="Netcgi_plex.html"> <link title="Http_client" rel="Chapter" href="Http_client.html"> <link title="Telnet_client" rel="Chapter" href="Telnet_client.html"> <link title="Ftp_data_endpoint" rel="Chapter" href="Ftp_data_endpoint.html"> <link title="Ftp_client" rel="Chapter" href="Ftp_client.html"> <link title="Nethttpd_types" rel="Chapter" href="Nethttpd_types.html"> <link title="Nethttpd_kernel" rel="Chapter" href="Nethttpd_kernel.html"> <link title="Nethttpd_reactor" rel="Chapter" href="Nethttpd_reactor.html"> <link title="Nethttpd_engine" rel="Chapter" href="Nethttpd_engine.html"> <link title="Nethttpd_services" rel="Chapter" href="Nethttpd_services.html"> <link title="Nethttpd_plex" rel="Chapter" href="Nethttpd_plex.html"> <link title="Nethttpd_intro" rel="Chapter" href="Nethttpd_intro.html"> <link title="Netplex_types" rel="Chapter" href="Netplex_types.html"> <link title="Netplex_mp" rel="Chapter" href="Netplex_mp.html"> <link title="Netplex_mt" rel="Chapter" href="Netplex_mt.html"> <link title="Netplex_log" rel="Chapter" href="Netplex_log.html"> <link title="Netplex_controller" rel="Chapter" href="Netplex_controller.html"> <link title="Netplex_container" rel="Chapter" href="Netplex_container.html"> <link title="Netplex_sockserv" rel="Chapter" href="Netplex_sockserv.html"> <link title="Netplex_workload" rel="Chapter" href="Netplex_workload.html"> <link title="Netplex_main" rel="Chapter" href="Netplex_main.html"> <link title="Netplex_config" rel="Chapter" href="Netplex_config.html"> <link title="Netplex_kit" rel="Chapter" href="Netplex_kit.html"> <link title="Rpc_netplex" rel="Chapter" href="Rpc_netplex.html"> <link title="Netplex_cenv" rel="Chapter" href="Netplex_cenv.html"> <link title="Netplex_intro" rel="Chapter" href="Netplex_intro.html"> <link title="Netshm" rel="Chapter" href="Netshm.html"> <link title="Netshm_data" rel="Chapter" href="Netshm_data.html"> <link title="Netshm_hashtbl" rel="Chapter" href="Netshm_hashtbl.html"> <link title="Netshm_array" rel="Chapter" href="Netshm_array.html"> <link title="Netshm_intro" rel="Chapter" href="Netshm_intro.html"> <link title="Netconversion" rel="Chapter" href="Netconversion.html"> <link title="Netchannels" rel="Chapter" href="Netchannels.html"> <link title="Netstream" rel="Chapter" href="Netstream.html"> <link title="Mimestring" rel="Chapter" href="Mimestring.html"> <link title="Netmime" rel="Chapter" href="Netmime.html"> <link title="Netsendmail" rel="Chapter" href="Netsendmail.html"> <link title="Neturl" rel="Chapter" href="Neturl.html"> <link title="Netaddress" rel="Chapter" href="Netaddress.html"> <link title="Netbuffer" rel="Chapter" href="Netbuffer.html"> <link title="Netdate" rel="Chapter" href="Netdate.html"> <link title="Netencoding" rel="Chapter" href="Netencoding.html"> <link title="Netulex" rel="Chapter" href="Netulex.html"> <link title="Netaccel" rel="Chapter" href="Netaccel.html"> <link title="Netaccel_link" rel="Chapter" href="Netaccel_link.html"> <link title="Nethtml" rel="Chapter" href="Nethtml.html"> <link title="Netstring_str" rel="Chapter" href="Netstring_str.html"> <link title="Netstring_pcre" rel="Chapter" href="Netstring_pcre.html"> <link title="Netstring_mt" rel="Chapter" href="Netstring_mt.html"> <link title="Netmappings" rel="Chapter" href="Netmappings.html"> <link title="Netaux" rel="Chapter" href="Netaux.html"> <link title="Nethttp" rel="Chapter" href="Nethttp.html"> <link title="Netchannels_tut" rel="Chapter" href="Netchannels_tut.html"> <link title="Netmime_tut" rel="Chapter" href="Netmime_tut.html"> <link title="Netsendmail_tut" rel="Chapter" href="Netsendmail_tut.html"> <link title="Netulex_tut" rel="Chapter" href="Netulex_tut.html"> <link title="Neturl_tut" rel="Chapter" href="Neturl_tut.html"> <link title="Netsys" rel="Chapter" href="Netsys.html"> <link title="Netpop" rel="Chapter" href="Netpop.html"> <link title="Rpc_auth_dh" rel="Chapter" href="Rpc_auth_dh.html"> <link title="Rpc_key_service" rel="Chapter" href="Rpc_key_service.html"> <link title="Rpc_time" rel="Chapter" href="Rpc_time.html"> <link title="Rpc_auth_local" rel="Chapter" href="Rpc_auth_local.html"> <link title="Rtypes" rel="Chapter" href="Rtypes.html"> <link title="Xdr" rel="Chapter" href="Xdr.html"> <link title="Rpc" rel="Chapter" href="Rpc.html"> <link title="Rpc_program" rel="Chapter" href="Rpc_program.html"> <link title="Rpc_portmapper_aux" rel="Chapter" href="Rpc_portmapper_aux.html"> <link title="Rpc_packer" rel="Chapter" href="Rpc_packer.html"> <link title="Rpc_transport" rel="Chapter" href="Rpc_transport.html"> <link title="Rpc_client" rel="Chapter" href="Rpc_client.html"> <link title="Rpc_simple_client" rel="Chapter" href="Rpc_simple_client.html"> <link title="Rpc_portmapper_clnt" rel="Chapter" href="Rpc_portmapper_clnt.html"> <link title="Rpc_portmapper" rel="Chapter" href="Rpc_portmapper.html"> <link title="Rpc_server" rel="Chapter" href="Rpc_server.html"> <link title="Rpc_auth_sys" rel="Chapter" href="Rpc_auth_sys.html"> <link title="Rpc_intro" rel="Chapter" href="Rpc_intro.html"> <link title="Rpc_mapping_ref" rel="Chapter" href="Rpc_mapping_ref.html"> <link title="Rpc_ssl" rel="Chapter" href="Rpc_ssl.html"> <link title="Rpc_xti_client" rel="Chapter" href="Rpc_xti_client.html"> <link title="Shell_sys" rel="Chapter" href="Shell_sys.html"> <link title="Shell" rel="Chapter" href="Shell.html"> <link title="Shell_uq" rel="Chapter" href="Shell_uq.html"> <link title="Shell_mt" rel="Chapter" href="Shell_mt.html"> <link title="Shell_intro" rel="Chapter" href="Shell_intro.html"> <link title="Netsmtp" rel="Chapter" href="Netsmtp.html"><title>Ocamlnet 2 Reference Manual : Netencoding.Html</title> </head> <body> <div class="navbar"><a href="Netencoding.Url.html">Previous</a> <a href="Netencoding.html">Up</a> </div> <center><h1>Module <a href="type_Netencoding.Html.html">Netencoding.Html</a></h1></center> <br> <pre><span class="keyword">module</span> Html: <code class="code">sig</code> <a href="Netencoding.Html.html">..</a> <code class="code">end</code></pre><hr width="100%"> <br> Encodes characters that need protection by converting them to entity references. E.g. <code class="code">"<"</code> is converted to <code class="code">"&lt;"</code>. As the entities may be named, there is a dependency on the character set.<br> <br> Legacy functions:<br> <pre><span class="keyword">val</span> <a name="VALencode_from_latin1"></a>encode_from_latin1 : <code class="type">string -> string</code></pre><pre><span class="keyword">val</span> <a name="VALdecode_to_latin1"></a>decode_to_latin1 : <code class="type">string -> string</code></pre><br> These functions have a more general interface and should be preferred in new programs.<br> <pre><span class="keyword">val</span> <a name="VALunsafe_chars_html4"></a>unsafe_chars_html4 : <code class="type">string</code></pre><div class="info"> The string contains '<', '>', '"', '&' and the control characters 0-8, 11-12, 14-31, 127.<br> </div> <pre><span class="keyword">val</span> <a name="VALencode"></a>encode : <code class="type">in_enc:<a href="Netconversion.html#TYPEencoding">Netconversion.encoding</a> -><br> ?out_enc:<a href="Netconversion.html#TYPEencoding">Netconversion.encoding</a> -><br> ?prefer_name:bool -> ?unsafe_chars:string -> unit -> string -> string</code></pre><div class="info"> The input string that is encoded as <code class="code">in_enc</code> is recoded to <code class="code">out_enc</code>, and the following characters are encoded as HTML entity (<code class="code">&name;</code> or <code class="code">&#num;</code>):<ul> <li>The ASCII characters contained in <code class="code">unsafe_chars</code></li> <li>The characters that cannot be represented in <code class="code">out_enc</code>. By default (<code class="code">out_enc=`Enc_usascii</code>), only ASCII characters can be represented, and thus all code points >= 128 are encoded as HTML entities. If you pass <code class="code">out_enc=`Enc_utf8</code>, all characters can be represented.</li> </ul> For example, the string <code class="code">"(a<b) & (c>d)"</code> is encoded as <code class="code">"(a&lt;b) &amp; (c&gt;d)"</code>. <p> It is required that <code class="code">out_enc</code> is an ASCII-compatible encoding. <p> The option <code class="code">prefer_name</code> selects whether named entities (e.g. <code class="code">&lt;</code>) or numeric entities (e.g. <code class="code">&#60;</code>) are prefered. <p> The efficiency of the function can be improved when the same encoding is applied to several strings. Create a specialized encoding function by passing all arguments up to the unit argument, and apply this function several times. For example: <pre><code class="code"> let my_enc = encode ~in_enc:`Enc_utf8 () in let s1' = my_enc s1 in let s2' = my_enc s2 in ... </code></pre><br> </div> <pre><span class="keyword">type</span> <a name="TYPEentity_set"></a><code class="type"></code>entity_set = <code class="type">[ `Empty | `Html | `Xml ]</code> </pre> <pre><span class="keyword">val</span> <a name="VALdecode"></a>decode : <code class="type">in_enc:<a href="Netconversion.html#TYPEencoding">Netconversion.encoding</a> -><br> out_enc:<a href="Netconversion.html#TYPEencoding">Netconversion.encoding</a> -><br> ?lookup:(string -> string) -><br> ?subst:(int -> string) -><br> ?entity_base:<a href="Netencoding.Html.html#TYPEentity_set">entity_set</a> -> unit -> string -> string</code></pre><div class="info"> The input string is recoded from <code class="code">in_enc</code> to <code class="code">out_enc</code>, and HTML entities (<code class="code">&name;</code> or <code class="code">&#num;</code>) are resolved. The input encoding <code class="code">in_enc</code> must be ASCII-compatible. <p> By default, the function knows all entities defined for HTML 4 (this can be changed using <code class="code">entity_base</code>, see below). If other entities occur, the function <code class="code">lookup</code> is called and the name of the entity is passed as input string to the function. It is expected that <code class="code">lookup</code> returns the value of the entity, and that this value is already encoded as <code class="code">out_enc</code>. By default, <code class="code">lookup</code> raises a <code class="code">Failure</code> exception. <p> If a character cannot be represented in the output encoding, the function <code class="code">subst</code> is called. <code class="code">subst</code> must return a substitute string for the character. By default, <code class="code">subst</code> raises a <code class="code">Failure</code> exception. <p> The option <code class="code">entity_base</code> determines which set of entities are considered as the known entities that can be decoded without help by the <code class="code">lookup</code> function: <code class="code">`Html</code> selects all entities defined for HTML 4, <code class="code">`Xml</code> selects only <code class="code">&lt;</code>, <code class="code">&gt;</code>, <code class="code">&amp;</code>, <code class="code">&quot;</code>, and <code class="code">&apos;</code>, and <code class="code">`Empty</code> selects the empty set (i.e. <code class="code">lookup</code> is always called).<br> </div> </body></html>