My replacement thesaurus comes from a text file. Text files either changed to GBK or the utf-8 format are garbled.
If you define the replacement thesaurus yourself as follows:
$words = Array (' say ' = ' dddddddddddddddddddd ');
Replace will not garbled
$data [' content '] = STRTR ($data [' content '], $words);
I print out the words variable, the phrase inside is not garbled, with function detection, is not utf-8 format. So you can confirm that both the content and the replacement phrase are GBK formatted strings.
How can i solve this problem? Thank you
Reply to discussion (solution)
The format of your thesaurus? How do you read the thesaurus?
The format of your thesaurus? How do you read the thesaurus?
$data _file = pick_data. ' /word.txt '; $handle = fopen ($data _file, "R"); $data = Fread ($handle, FileSize ($data _file));
The format of your thesaurus? How do you read the thesaurus?
I searched the internet and got the answer: because STRTR is replaced with a single byte when the string is replaced, it can be garbled for non-single-byte encoded data (such as Chinese utf-8).
But my strings are GBK. And I used to use this function, there is no garbled. Here will appear garbled, do not know why.
You didn't say how your thesaurus was organized.
Not much as long as your original word has a single character, the probability of garbled is generally not less than 50%
You didn't say how your thesaurus was organized.
Not much as long as your original word has a single character, the probability of garbled is generally not less than 50%
The problem has been found. I use \ n to cut characters instead of \ r \ n. This is the cause of garbled characters. Thanks for the answer.