adrie-dh/encoding-conversion-dataloss-checker

独立库,用于测试字符串内容在字符集编码转换到其他编码标准时是否会丢失

dev-master 2016-04-22 14:17 UTC

This package is not auto-updated.

Last update: 2024-09-20 19:40:17 UTC


README

编码转换数据丢失检查器

Build Status

提供在编码过程中检查数据丢失的工具。例如,从UTF-8到ISO-8859-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);

/* $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, '<p>', '</p>');

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