Hello,

I get the hidden string " " as "\xa0" in CGI.pm.
Is it a natural thing?
I prefer just a " " (=\x20).

I must always do s/\xa0/\x20/g; ?

The next script test it.
Please set "a a" (a space a), enter, then set "?" and enter.

#!Perl
# $Id: TEST_SPACE.pl,v 1.0 2008-06-18 12:04 h-taguchi Exp $ 
use strict;
use CGI qw/:standard/;
#-------------------
# param
#-------------------
my $userid_orgin         = param("userid_orgin");
my $userid_hidden_asis   = param("userid_hidden_asis");
my $userid_hidden_spacer = param("userid_hidden_spacer");

if ($userid_orgin eq "?") {
  # No action
} elsif ($userid_orgin eq "") {
  $userid_hidden_asis   = "";
  $userid_hidden_spacer = "";
} else {
  $userid_hidden_asis   = $userid_orgin;
  $userid_hidden_spacer = $userid_orgin;
}

# space to "nbsp"
$userid_hidden_spacer = spacer($userid_hidden_spacer);

my $userid_orgin_x         = unpack("H*" => $userid_orgin        );
my $userid_hidden_asis_x   = unpack("H*" => $userid_hidden_asis  );
my $userid_hidden_spacer_x = unpack("H*" => $userid_hidden_spacer);
#-------------------
# display
#-------------------
print header,
      start_html("test space"),
      h1("test space"),
      br,
      "INPUT: ", br, "\n",
      "userid_orgin         = '$userid_orgin'         ($userid_orgin_x        
)", br, "\n",
      "userid_hidden_asis   = '$userid_hidden_asis'   ($userid_hidden_asis_x  
)", br, "\n",
      "userid_hidden_spacer = '$userid_hidden_spacer' 
($userid_hidden_spacer_x)", br, "\n",
      start_form, "\n",
      "What's your userid? ", textfield("userid_orgin"), br, "\n",
      "<input type=\"hidden\" name=\"userid_hidden_asis\"   
value=\"$userid_hidden_asis\">\n",
      "<input type=\"hidden\" name=\"userid_hidden_spacer\" 
value=\"$userid_hidden_spacer\">\n",
      submit, "\n",
      end_form, "\n",
      hr, "\n",;

exit;

sub spacer {
  my $input = $_[0];
  $input =~ s/ /&nbsp;/g;  # " " → &nbsp;
  $input;
}

__END__

Regards,
H.T.
_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to