Question

I have one page and it's encoding is UTF-8 and If i try to run that code in unix system everythings looks fine but when i try to run in windows(7) some chracters looks question mark(�). How can run the code fine both of two system(without using iconv).

header('Content-Type: text/html; charset=UTF-8');
setlocale(LC_ALL, 'turkish');
echo strftime("%d %B %Y, %H:%M");
Was it helpful?

Solution

For those who is having similar problems on linux (this may work also for windows but not sure).

Yes there is 'turkish' but there is also 'tr_TR.utf8' . If you use 'tr_TR.utf8' most probably your problems will be washed away. Same thing applies also to 'greek'. Instead use 'el_GR.utf8'

On linux you can check the locale list to find the proper settings for your site.

locale -a

List is too long and you can't see all languages, so either you can just dump it into a file and then open the file to check.

locale -a > locale.txt
vi locale.txt

or do locale -a | grep languagecode for a specific language

locale -a | grep tr

OTHER TIPS

Microsoft Windows does not support UTF-8 locales. So if you provide turkish locale, it would pic an 8-bit code page that allows representation of specific language.

For example for locale Hebrew it would pic codepage-1255, for Turkish it would probably be 1254.

So, you can't use this under MS-Windows platform.

How can run the code fine both of two system(without using iconv).

Probably use non-utf8 encoding under MS Windows.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top