If you use the jQuery Autocomplete widget with GeoNames webservice for city names, you’ll find that city names use a bunch of non-ASCII, ISO 8859-x characters that don’t display properly in FPDF documents. I’m using FPDF to generate a PDF that uses city names from GeoNames. The following city names have international characters that output strange characters.
Gotenica, Kočevje, Slovenia outputs:
Gotenica, KoÄevje, Slovenia
Sokal’, L’vivs’ka Oblast’, Ukraine outputs:
Sokal’, L’vivs’ka Oblast’, Ukraine
Litu, Läänemaa, Estonia outputs:
Litu, Läänemaa, Estonia
Gothenburg, Västra Götaland, Sweden outputs:
Gothenburg, Västra Götaland, Sweden
Plungė, Lithuania outputs:
PlungÄ—, Lithuania
Bucharest, BucureÅŸti, Romania outputs:
Bucharest, BucureÅŸti, Romania
So, to fix this, I do this before I output the city name in FPDF.
setlocale(LC_CTYPE, 'en_US'); $converted_cityName = iconv('UTF-8', 'ASCII//TRANSLIT', $cityName); // now you can output the converted city name to pdf $pdf->Cell(0, 0, $converted_cityName, 0, 1, C);
If you want more information on why this wrongful encoding of non-ASCII characters turns them into “garbage characters”, here is a good post explaining it: Fixing common Unicode mistakes with Python — after they’ve been made
mohammed ibrahim
November 10th, 2015 at 9:33 am
but it doesn’t display Arabic .
what should i do ?