
Conversión de caracteres especiales con el método transliterate de Laravel
- Publicado el 21 enero, 2025
- Palabras: 46
¿Necesitas convertir caracteres especiales a sus equivalentes ASCII? El método Str::transliterate de Laravel ofrece una solución sencilla para normalizar el contenido de texto.

#Uso básico
El método Str::transliterate intentará convertir una cadena dada en su representación ASCII más cercana:
use IlluminateSupportStr;
$email = Str::transliterate('ⓣⓔⓢⓣ@ⓛⓐⓡⓐⓥⓔⓛ.ⓒⓞⓜ');
// Result: 'test@laravel.com'
#Ejemplo práctico
A continuación se explica cómo podrías usarlo en un servicio de normalización de texto:
class TextNormalizer
{
public function normalizeUserInput(array $input)
{
return collect($input)->map(function ($value) {
return is_string($value)
? Str::transliterate($value)
: $value;
})->all();
}
public function sanitizeUsername(string $username)
{
return Str::transliterate($username);
}
public function cleanEmailAddress(string $email)
{
return strtolower(Str::transliterate($email));
}
public function normalizeTags(array $tags)
{
return array_map(function ($tag) {
return Str::transliterate($tag);
}, $tags);
}
}
// Usage
class UserController extends Controller
{
public function store(Request $request, TextNormalizer $normalizer)
{
$normalizedInput = $normalizer->normalizeUserInput([
'username' => $request->username,
'email' => $request->email,
'tags' => $request->tags
]);
// Create user with normalized data
User::create($normalizedInput);
}
}
El método de transliteración permite garantizar fácilmente un formato de texto consistente en toda la aplicación.
Fuente: Harris Raftopoulos
Artículos relacionados
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión