Whoa, that’s never going to work! And you should (very very very almost) not ever need to be calling encode/decode yourself, either.#!/usr/bin/perl use warnings; use strict; use Encode qw(encode decode); my $enc = 'utf-8'; # This script is stored as UTF-8 my $str = "úlcera\n"; # Byte strings: print ucfirst $str; # prints 'úlcera', ucfirst didn't have any effect.
Honest, this is really very easy. Watch:
...very most assuredly does indeed print out Úlcera. Don’t go by appearances: trust only the numbers. Thus:use utf8; use strict; use warnings; use warnings FATAL => "utf8"; use feature "unicode_strings"; # or use v5.12 or superior use open qw(:std :utf8); print ucfirst("úlcera\n");
The outer pair of tests above risk only confusion; it is the inner pair that are wholly dispositive and convincing: trust the output of uniquote -v and uniquote -x to give you something you can actually read and depend on.$ perl ultstertest Úlcera $ perl ulstertest | uniquote -x \x{DA}lcera $ perl ulstertest | uniquote -v \N{LATIN CAPITAL LETTER U WITH ACUTE}lcera $ perl ulstertest | uniquote -b \xC3\x9Alcera
Like I said, just play it by the numbers.
--tom
In reply to Re^3: Accented letter is not capitalised
by tchrist
in thread Accented letter is not capitalised
by Steve_BZ
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |