Skip to:
Content
Pages
Categories
Search
Top
Bottom

Umlaut in member name


  • Dailytalker
    Member

    @dailytalker

    Hi, when I have an umlaut in a membername it gives me this sign: �

    Example: If there is a member with the name “Müller” it shows “M�ller”.

    How can I replace that � sign with the correct umlaut?

    umlauts: ä, ö, ü

Viewing 8 replies - 1 through 8 (of 8 total)

  • Dailytalker
    Member

    @dailytalker

    Strange is that this problem occurs only with member names. In the forum posts the umlauts are displayed correctly.

    I use wordpress integration…in wordpress the member names are displayed correctly. Only in bbpress the umlauts are not displayed correctly in the member names.


    chrishajer
    Participant

    @chrishajer

    That sounds like an old problem with integration. Can’t find the thread right now though.


    Dailytalker
    Member

    @dailytalker

    I looked a bit around and found a peace of code with which I was able to create a plugin.

    <?php

    /*

    Plugin Name: UTF-8 usernames

    Description: This plugin enables utf-8 characters in usernames. Mbstring must be enabled in the php.ini.

    */

    function sanitize_user_mbstring( $raw_username, $username, $strict = false ) {

    $raw_username = $username;

    $username = strip_tags($username);

    // Kill octets

    $username = preg_replace(‘|%([a-fA-F0-9][a-fA-F0-9])|’, ”, $username);

    $username = preg_replace(‘/&.+?;/’, ”, $username); // Kill entities

    // Usage of ‘mb_ereg_replace’ instead of ‘preg_replace’ to preserve accents.

    if ( $strict )

    $username = mb_ereg_replace(‘|[^a-z0-9 _.-@]|i’, ”, $username);

    return apply_filters(‘sanitize_user_mbstring’, $username, $raw_username, $strict);

    }

    add_action(‘sanitize_user’, ‘sanitize_user_mbstring’, 0, 3);

    ?>

    Unfortunately it doesn’t work properly. When it displays correctly in bbpress it doesn’t in wordpress and reverse. I don’t have access to the php.ini. Could it be, that the thing with “mbstring” is the problem?


    Gautam Gupta
    Moderator

    @gautamgupta

    Ensure that your forum’s encoding is utf-8


    Dailytalker
    Member

    @dailytalker

    I have in both…UTF-8 but it doesn’t work.


    Dailytalker
    Member

    @dailytalker

    I solved the problem by adding the following additional code to the plugin:

    add_filter( 'get_user_display_name', 'rk_display_name' );

    function rk_display_name($name, $ID = 0) {

    if ( !seems_utf8( $name ) )

    return utf8_encode( $name );

    return $name;

    }

    We needed to add another filter, so the code looks like this:

    add_filter( 'get_user_display_name', 'rk_display_name' );

    add_filter( 'get_post_author', 'rk_display_name' );

    function rk_display_name($name, $ID = 0) {

    if ( !seems_utf8( $name ) ) {

    return utf8_encode( $name );

    }

    return $name;

    }

Viewing 8 replies - 1 through 8 (of 8 total)

You must be logged in to reply to this topic.