2016-11-08 8 views
0

Я обрезка first_name и last_name моих пользователей на модели с помощью красноречивого Accessors со следующим помощником:UTF-8 Ошибка после отделки ( xA0) в красноречивом аксессоре

function clean($string){ 
    return trim($string, " \t\n\r\0\x0B\xc2\xa0"); 
} 

Тогда в модели :

public function getFirstNameAttribute($firstname){ 
    return clean(ucwords(strtolower($firstname))); 
} 
public function getLastNameAttribute($lastname){ 
    return clean(ucwords(strtolower($lastname))); 
} 

много имен происходит от первенствовать имеет конечные пробелы, которые могут быть удалены подрезки \ xA0, но проблема возникает, когда он пытается урезать специальные символы, а (а).

Я попытался удалить его, и это не подведет, но, конечно, он не удаляет конечные пробелы.

Я также пытался убедиться, что заголовки кодирокой были установлены UTF-8

Любая идея? Благодарю.

Я просто хочу, невидимые пространства, чтобы уйти:/

Сообщение об ошибке:

InvalidArgumentException in JsonResponse.php line 69: 
Malformed UTF-8 characters, possibly incorrectly encoded 

ответ

0

Попробуйте использовать mb_strtolower() и mb_convert_case() вместо strtolower() и ucwords().

Вместо trim() вы можете попробовать эту функцию из here:

function mb_trim($str) { 
    return preg_replace("/(^\s+)|(\s+$)/us", "", $str); 
} 
+0

Спасибо за совет, попробовал, но он не работает, либо, это отделка. –

+0

@CarlosFdev Я обновил свой ответ. –

+0

тоже не удалял все конечные пробелы { «id»: 95063, «first_name»: «Xabier»}, только когда я добавляю \ xa0 к обрезке, он фактически удаляет их все –

 Смежные вопросы

  • Нет связанных вопросов^_^