http://www.perlmonks.org?node_id=1016210


in reply to Re^3: Replacing non ascii in string
in thread Replacing non ascii in string

I have solved by adding another line

$url = "http://www.flightcentre.com.au/static/SkiHolidays.xml"; $data_string = get($url); $data_string =~ tr/‘’/'/; $data_string =~ tr/’/'/; $data_string =~ s/'''/'/g;

For some reason when I view the source of that xml I see the apostrophes that I show here. However to check it I was doing the following:

$file1 = "aafc.txt"; open (FILE,">$file1"); print FILE $data_string; close(FILE);

Here I was seeing the string as
’Powder Capital’ instead of ‘Powder Capital’ as in the source of the xml. I don't understand why, clearly there has been some type of conversion of character types on reading the file. By making the substitution for ’ instead of ‘ it worked but then produced 3 ''' instead. So by doing that string replacement it worked. Seems bizarre to me but it works!