budik_je_vypnuty has asked for the wisdom of the Perl Monks concerning the following question:

Dear holy monks !

I'm using XML::Writer with these setting

use utf8; my $wr_xml = new XML::Writer(OUTPUT => $output,UNSAFE => 1,ENCODING => + 'utf-8');

Everything works fine, except

\t

tabulator. The output seems like this

type="const char 		* const"

Using Perl v5.8.8

Thank you

Replies are listed 'Best First'.
Re: XML::Writer "wrong" utf8 output
by tobyink (Canon) on Mar 08, 2013 at 10:11 UTC

    It's XML. Per spec, the hard tab character and 	 (and indeed 	) are defined to mean exactly the same thing.

    If the output is going to be fed to an XML tool, that XML tool shouldn't care whether you've used a hard tab or whether you've used 	.

    If the output is going to be fed to a non-XML tool, then why the hell are you feeding XML to a non-XML tool?! Stop doing that.

    package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name
      Actually, no they're not. A literal tab is considered whitespace in attribute values, whereas 	 refers to a tab. So if you want to include a tab in the attribute, you *have* to use 	.