- bin2hex: documentation ( source)
- strtoupper: documentation ( source)
- str_split: documentation ( source)
- ord: documentation ( source)
<?php
$all = '\nbackspace %08' .
'\ntab %09' .
'\nlinefeed %0A' .
'\ncreturn %0D' .
'\nspace %20' .
'\n! %21' .
'\n" %22' .
'\n# %23' .
'\n$ %24' .
'\n% %25' .
'\n& %26' .
"' %27" .
'\n( %28' .
'\n) %29' .
'\n* %2A' .
'\n+ %2B' .
'\n, %2C' .
'\n- %2D' .
'\n. %2E' .
'\n/ %2F' .
'\n0 %30' .
'\n1 %31' .
'\n2 %32' .
'\n3 %33' .
'\n4 %34' .
'\n5 %35' .
'\n6 %36' .
'\n7 %37' .
'\n8 %38' .
'\n9 %39' .
'\n: %3A' .
'\n; %3B' .
'\n< %3C' .
'\n= %3D' .
'\n> %3E' .
'\n? %3F' .
'\n@ %40' .
'\nA %41' .
'\nB %42' .
'\nC %43' .
'\nD %44' .
'\nE %45' .
'\nF %46' .
'\nG %47' .
'\nH %48' .
'\nI %49' .
'\nJ %4A' .
'\nK %4B' .
'\nL %4C' .
'\nM %4D' .
'\nN %4E' .
'\nO %4F' .
'\nP %50' .
'\nQ %51' .
'\nR %52' .
'\nS %53' .
'\nT %54' .
'\nU %55' .
'\nV %56' .
'\nW %57' .
'\nX %58' .
'\nY %59' .
'\nZ %5A' .
'\n[ %5B' .
'\n\ %5C' .
'\n] %5D' .
'\n^ %5E' .
'\n_ %5F' .
'\n` %60' .
'\na %61' .
'\nb %62' .
'\nc %63' .
'\nd %64' .
'\ne %65' .
'\nf %66' .
'\ng %67' .
'\nh %68' .
'\ni %69' .
'\nj %6A' .
'\nk %6B' .
'\nl %6C' .
'\nm %6D' .
'\nn %6E' .
'\no %6F' .
'\np %70' .
'\nq %71' .
'\nr %72' .
'\ns %73' .
'\nt %74' .
'\nu %75' .
'\nv %76' .
'\nw %77' .
'\nx %78' .
'\ny %79' .
'\nz %7A' .
'\n{ %7B' .
'\n| %7C' .
'\n} %7D' .
'\n~ %7E' .
'\n¢ %A2' .
'\n£ %A3' .
'\n¥ %A5' .
'\n| %A6' .
'\n§ %A7' .
'\n« %AB' .
'\n¬ %AC' .
'\n¯ %AD' .
'\nº %B0' .
'\n± %B1' .
'\nª %B2' .
'\n, %B4' .
'\nµ %B5' .
'\n» %BB' .
'\n¼ %BC' .
'\n½ %BD' .
'\n¿ %BF' .
'\nÀ %C0' .
'\nÁ %C1' .
'\n %C2' .
'\nà %C3' .
'\nÄ %C4' .
'\nÅ %C5' .
'\nÆ %C6' .
'\nÇ %C7' .
'\nÈ %C8' .
'\nÉ %C9' .
'\nÊ %CA' .
'\nË %CB' .
'\nÌ %CC' .
'\nÍ %CD' .
'\nÎ %CE' .
'\nÏ %CF' .
'\nÐ %D0' .
'\nÑ %D1' .
'\nÒ %D2' .
'\nÓ %D3' .
'\nÔ %D4' .
'\nÕ %D5' .
'\nÖ %D6' .
'\nØ %D8' .
'\nÙ %D9' .
'\nÚ %DA' .
'\nÛ %DB' .
'\nÜ %DC' .
'\nÝ %DD' .
'\nÞ %DE' .
'\nß %DF' .
'\nà %E0' .
'\ná %E1' .
'\nâ %E2' .
'\nã %E3' .
'\nä %E4' .
'\nå %E5' .
'\næ %E6' .
'\nç %E7' .
'\nè %E8' .
'\né %E9' .
'\nê %EA' .
'\në %EB' .
'\nì %EC' .
'\ní %ED' .
'\nî %EE' .
'\nï %EF' .
'\nð %F0' .
'\nñ %F1' .
'\nò %F2' .
'\nó %F3' .
'\nô %F4' .
'\nõ %F5' .
'\nö %F6' .
'\n÷ %F7' .
'\nø %F8' .
'\nù %F9' .
'\nú %FA' .
'\nû %FB' .
'\nü %FC' .
'\ný %FD' .
'\nþ %FE' .
'\nÿ %FF';
$string = '';
foreach(str_split(iconv("UTF-8", "Windows-1252", $all)) as $n => $c) {
if (ord($c) > 127) {
$c = '%'.strtoupper(bin2hex($c));
}
$string .= $c;
}
echo $string;