mb_* functions or Symfony’s StringUtil for encoding tasks.application/json; charset=UTF-8).Adopt if:
é instead of é) in databases/APIs.[a-z] missing accented letters in validation).latin1 → UTF-8mb4).storage/ uploads) and needs encoding consistency for uploaded files.Look elsewhere if:
mb_detect_encoding for dynamic cases).monolog/monolog extensions).StringUtil or Guzzle’s encoding tools (evaluate overlap).*"This package eliminates a $50K/year technical debt in our [global e-commerce/API] by standardizing string encoding. Currently, encoding issues:
Solution: A $0-cost (MIT license) Laravel package that:
ROI: $50K/year saved with a 2-hour implementation. Prioritize for Q4 to enable [global marketplace] launch."*
*"Problem: Encoding inconsistencies in Laravel cause:
iconv() fails silently on malformed UTF-8 (e.g., ?? in databases).[a-z] misses é, ñ, or CJK characters in validation.mb_convert_encoding() across repositories.Solution: devanoxltd/string-encoder provides:
| Feature | Benefit |
|---|---|
| Fluent API | Replace iconv($str, 'UTF-8', 'ISO-8859-1') with $encoder->convert()->fromString($str)->toString(). |
| MB Regex Support | Use [^\p{L}] in Laravel validation rules (e.g., FormRequest). |
| File/DTO Outputs | Convert uploaded files to UTF-8 DTOs for consistent processing. |
| Proxy Pattern | Add Encoder::mountFromEncoding('ISO-8859-1', 'UTF-8') to AppServiceProvider. |
| UTF-8 BOM Removal | Sanitize user uploads automatically (e.g., CSV files with BOM). |
Implementation Plan:
iconv() calls in AppServiceProvider with the package.Resource::collection()).Rule::regex('/[\p{L}]+/')).Risk Mitigation:
*"Why This > Manual iconv():
file_get_contents() + iconv().[^\p{L}] to strip non-letters (works for all scripts).DTO->getEncoding()) to track issues.Storage::put($path, $encoder->convert()->fromString($str)->toString()).Rule::regex('/^\p{L}+$/') for international names.handle()->convert()->toDTO()).Quick Start:
// app/Providers/AppServiceProvider.php
public function boot()
{
$encoder = new \StringEncoder\Encoder();
$encoder->setOptions((new \StringEncoder\Options())->setRemoveUTF8BOM(true));
app()->singleton('encoder', fn() => $encoder);
}
// Usage in controllers:
$str = $request->input('description');
$cleanStr = app('encoder')->convert()->fromString($str)->toString();
```*
---
**Key Selling Point**: *"This package turns a **painful, error-prone** task (encoding) into a **reliable, reusable** Laravel service—saving dev time and reducing bugs."*
How can I help you explore Laravel packages today?