0

str_replace は、アクセント付きの文字をアクセントのない文字に置き換えません。それの何がいけないの?

これにより、期待される結果が返されます。

<?php
    $string = get_post_custom_values ("text");
    // Say get_post_custom_values ​​("text") equals "José José"
    $string = str_replace(" ", "-", $string);

    echo $string [0];
    // Output "José-José"
?>

これは動作しません:

<?php
    $string = get_post_custom_values ("text");
    // Say get_post_custom_values ​​("text") equals "Joseph Joseph"
    $string = str_replace("é", "e", $string);

    echo $string [0];
    // Output "José José". Nothing has changed
?>

注: ポルトガル語から GoogleTranslate で翻訳されています。

4

2 に答える 2

1

すべてのアクセント付き文字を削除する簡単で安全な方法は、iconvを使用することです。

setlocale(LC_ALL, "fr_CA.utf8"); // for instance
$output = iconv("utf-8", "ascii//TRANSLIT", $input);

現在の問題は、おそらく別のエンコーディングが原因です。

于 2012-03-04T04:07:07.030 に答える
0

éソースコードに保存されている文字は、から取得したデータと同じエンコーディングget_post_custom_valuesではありません。エンコーディングが一致しない→同じ文字として認識されない→置き換えられない。

于 2012-03-04T03:57:36.297 に答える