Apache::DefaultCharset - AddDefaultCharset configuration from mod_perl


Apache-DefaultCharset documentation Contained in the Apache-DefaultCharset distribution.

Index


Code Index:

NAME

Top

Apache::DefaultCharset - AddDefaultCharset configuration from mod_perl

SYNOPSIS

Top

  use Apache::DefaultCharset;

  # This module adds "add_default_charset_name" method
  $charset = $r->add_default_charset_name;
  $r->add_default_charset_name('euc-jp');

  # via Apache::DefaultCharset object
  $charset = Apache::DefaultCharset->new($r);
  print "default_charset_name is ", $charset->name;
  # or print "default charset is $charset"; will do (overload)
  $charset->name('euc-jp');




DESCRIPTION

Top

Apache::DefaultCharset is an XS wrapper for Apache Core's AddDefaultCharset configuration.

EXAMPLES

Top

Unicode Handling

Suppose you develop multi-language web application, and transparently decode native encodings into Unicode string inside Perl (5.8 or over would be better). First you should add

  AddDefaultCharset euc-jp

in your httpd.conf, then leave off send_http_header arguments just to text/html. Then you can get the current configuration with this module when you use Encode or Text::Iconv to decode the HTTP request query into Unicode.

Modification of DefaultCharset

Suppose you want to add utf-8 for XML files, and Shift_JIS for HTML files as HTTP charset attribute by default ("By default" means that if you set content_type explicitly in content-generation phase, that will be prior to the defalut). This module enables you to write PerlFixupHandler to configure add_default_charset_name in run-time.

AUTHOR

Top

Tatsuhiko Miyagawa <miyagawa@bulknews.net>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

Top

Apache::DefaultCharset

mod_perl cookbook at http://www.modperlcookbook.org/


Apache-DefaultCharset documentation Contained in the Apache-DefaultCharset distribution.

package Apache::DefaultCharset;

use strict;
use vars qw($VERSION);
$VERSION = 0.02;

require DynaLoader;
use base qw(DynaLoader);
__PACKAGE__->bootstrap($VERSION) if $ENV{MOD_PERL};

use overload q("") => sub { _get($_[0]->{r}) };

sub new {
    my($class, $r) = @_;
    bless { r => $r }, $class;
}

sub name {
    my $self = shift;
    if (@_ == 1) {
	_set($self->{r}, @_);
    } else {
	return _get($self->{r});
    }
}

package Apache;

sub add_default_charset_name {
    my $r = shift;
    if (@_ == 1) {
	Apache::DefaultCharset::_set($r, @_);
    } else {
	return Apache::DefaultCharset::_get($r);
    }
}

1;
__END__