I'm having trouble with an international setting.  I am trying to use french Canadian 
into my application.  I am using dbi to insert into an oracle table.  The intent is to 
pull out and display as french.  I am not sure if I am inserting correctly, as I am 
using xterm to display the table, or a web interface.  

The word I am trying to insert is Pr�nom. This is invariably being displayed as Prenom 
or Prinom.  I have to use a stored procedure to insert, and the code is below.  I'm 
passing the parameters in a : delimited string, and the substitution is to allow for 
's in the text.
The annoying thing is the print of $txt just prior to the update still has the accent 
mark.  The dba tells me that the database has the correct value, so I can't rule out 
the browser display.
Has anybody wrestled with international fonts????
sub upd_trtext
{
my ($dbh,$plist)=@_;
my ($update_cursor,$output,$out_message);
my ($log_error);
my ($fld,$lan,$txt,$adm)=split(":",$plist);
$txt=~ s/\'/\'\'/g;
print "txt $txt<br>";
$update_cursor = $dbh->prepare("begin sp_Upd_MDSAA22_TRTEXT(
  \'$fld\',  \'$lan\', \'$txt\', \'$adm\',
  :output     , :out_msg); end;");
if (!$update_cursor)
 {
   $output=0;
   $out_message="failed to prepare cursor";
   return($output,$out_message);
 }
 ### Bind the output variables from the Stored Procedure, to perl variables.
 $update_cursor->bind_param_inout(':output', \$output, 10);
 $update_cursor->bind_param_inout(':out_msg', \$out_message, 50);

unless($update_cursor->execute)
{
#  print "Problem executing\n";
  $log_error = "Error 2 updating language: " . $dbh->errstr;
#  print "$log_error\n";
  $output=2;
return($output,$log_error);
}
return($output,$out_message);
}


Tim Vorce
Ford Motor Company
[EMAIL PROTECTED]

Reply via email to