Difference between revisions of "Ns startcontent"
Jump to navigation
Jump to search
Line 29: | Line 29: | ||
'''NOTES''' | '''NOTES''' | ||
+ | : In AOLserver 4.5, ns_startcontent's behavior has changed, so it may be convenient to reimplement ns_startcontent to be backward compatible as follows: | ||
+ | |||
+ | if {[ns_info version] >= 4.5} { | ||
+ | catch {rename ns_startcontent {}} | ||
+ | proc ns_startcontent {args} { | ||
+ | # | ||
+ | # Re-implement ns_startcontent in Tcl in AOLserver 4.5 | ||
+ | # because the -type option no longer falls back to | ||
+ | # server's default encoding like it did in 4.0. | ||
+ | # Luckily, in 4.5, ns_adp_mimetype now just | ||
+ | # calls Ns_ConnSetType() which still does | ||
+ | # and works outside of adps | ||
+ | # | ||
+ | if {[llength $args]} { | ||
+ | switch [string range [lindex $args 0] 1 end] { | ||
+ | charset { | ||
+ | ns_conn encoding [ns_encodingforcharset [lindex $args 1]] | ||
+ | } | ||
+ | type { | ||
+ | ns_adp_mimetype [lindex $args 1] | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | # NaviServer removed write_encoded | ||
+ | catch {ns_conn write_encoded 1} | ||
+ | return "" | ||
+ | } | ||
+ | } | ||
'''SEE ALSO''' | '''SEE ALSO''' | ||
: [[ns_write]], [[ns_choosecharset]], [[ns_config]] | : [[ns_write]], [[ns_choosecharset]], [[ns_config]] |
Revision as of 04:25, 11 October 2009
<manpage>ns_startcontent</manpage>
NAME
- ns_startcontent - Configures connection for encoding non-binary content to be returned with ns_write
SYNOPSIS
- ns_startcontent ?-type content_type_and_charset | -charset charset?
DESCRIPTION
- This command is used to set the appropriate encoding prior to returning the content part of the response via ns_write.
EXAMPLES
# Assume japanesetext.html_sj is stored in Shift-JIS encoding. set fd [open japanesetext.html_sj r] fconfigure $fd -encoding shiftjis set html [read $fd [file size japanesetext.html_sj]] close $fd set charset [ns_choosecharset -preference {utf-8 shift-jis euc-jp iso-2022-jp}] set type "text/html; charset=$charset" ns_write "HTTP/1.0 200 OK Content-Type: $type \n" ns_startcontent -type $type ns_write $html
NOTES
- In AOLserver 4.5, ns_startcontent's behavior has changed, so it may be convenient to reimplement ns_startcontent to be backward compatible as follows:
if {[ns_info version] >= 4.5} { catch {rename ns_startcontent {}} proc ns_startcontent {args} { # # Re-implement ns_startcontent in Tcl in AOLserver 4.5 # because the -type option no longer falls back to # server's default encoding like it did in 4.0. # Luckily, in 4.5, ns_adp_mimetype now just # calls Ns_ConnSetType() which still does # and works outside of adps # if {[llength $args]} { switch [string range [lindex $args 0] 1 end] { charset { ns_conn encoding [ns_encodingforcharset [lindex $args 1]] } type { ns_adp_mimetype [lindex $args 1] } } } # NaviServer removed write_encoded catch {ns_conn write_encoded 1} return "" } }
SEE ALSO