strtr function numeric character substitution garbled

Source: Internet
Author: User
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.

  • Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.