PHPackages                             adrie-dh/encoding-conversion-dataloss-checker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. adrie-dh/encoding-conversion-dataloss-checker

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

adrie-dh/encoding-conversion-dataloss-checker
=============================================

Standalone library to test the whether a string's content would survive charset encoding to another encoding standard

011PHP

Since Apr 22Pushed 10y ago1 watchersCompare

[ Source](https://github.com/adrie-dh/encoding-conversion-dataloss-checker)[ Packagist](https://packagist.org/packages/adrie-dh/encoding-conversion-dataloss-checker)[ RSS](/packages/adrie-dh-encoding-conversion-dataloss-checker/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Encodingconversion dataloss checker

[![Build Status](https://camo.githubusercontent.com/3e4294f994fe9b6e1551ac3e1cc3e29ee30641ff58383f66fb2a05463f225ec0/68747470733a2f2f7365637572652e7472617669732d63692e6f72672f61647269652d64682f656e636f64696e672d636f6e76657273696f6e2d646174616c6f73732d636865636b65722e706e67)](http://travis-ci.org/adrie-dh/encoding-conversion-dataloss-checker)

Provides the tools to check for dataloss during encoding. For instance UTF-8 to ISO-8859-1 will ensure that some characters might not make the conversion.

Also comes with a simple substring wrapper which allows you to provide exact feedback in your frontend regarding the problematic characters.

Examples:

```
$testString = 'Ma võin klaasi süüa, 是紅, see ei tee mulle midagi. 是紅. And then some.';
$tester = new EncodingConversionDataLossChecker('UTF-8', 'ISO-8859-1');
$diffArray = $tester->diagnose($testString);

/* $diffArray:
array(2) {
  [0]=>
  array(3) {
    ["startPos"]=>
    int(21)
    ["characters"]=>
    string(6) "是紅"
    ["length"]=>
    int(2)
  }
  [1]=>
  array(3) {
    ["startPos"]=>
    int(50)
    ["characters"]=>
    string(6) "是紅"
    ["length"]=>
    int(2)
  }
}
*/

$testString = 'In most of europe the standard currency is the euro (€), it has € as a symbol.';
$tester = new EncodingConversionDataLossChecker('UTF-8', 'ISO-8859-1');
$diffArray = $tester->diagnose($testString);

/* $diffArray:
array(2) {
  [0]=>
  array(3) {
    ["startPos"]=>
    int(53)
    ["characters"]=>
    string(3) "€"
    ["length"]=>
    int(1)
  }
  [1]=>
  array(3) {
    ["startPos"]=>
    int(64)
    ["characters"]=>
    string(3) "€"
    ["length"]=>
    int(1)
  }
}
*/

$testString = 'Ma võin klaasi süüa, 是紅, see ei tee mulle midagi. 是紅. And then some.';
$tester = new EncodingConversionDataLossChecker('UTF-8', 'ISO-8859-1');
$diffArray = $tester->diagnose($testString);
$wrappedHtml = $tester->subStringWrap($testString, $diffArray, '', '');

/* $wrappedHtml:
string(93) "Ma võin klaasi süüa, 是紅, see ei tee mulle midagi. 是紅. And then some."
*/
```

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/dcf0fcab2d6108936e140ca57f875c16c56b7f5bb902d77b7ab4861991eb520b?d=identicon)[adrie-dh](/maintainers/adrie-dh)

---

Top Contributors

[![adrie-dh](https://avatars.githubusercontent.com/u/1128851?v=4)](https://github.com/adrie-dh "adrie-dh (2 commits)")

### Embed Badge

![Health badge](/badges/adrie-dh-encoding-conversion-dataloss-checker/health.svg)

```
[![Health](https://phpackages.com/badges/adrie-dh-encoding-conversion-dataloss-checker/health.svg)](https://phpackages.com/packages/adrie-dh-encoding-conversion-dataloss-checker)
```

###  Alternatives

[silvershop/silverstripe-listsorter

Easily provide front-end sorting controls for SilverStripe lists

1642.5k6](/packages/silvershop-silverstripe-listsorter)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
