> Lehet azon Big5 kódolású string is, vagy éppen GB2312.
Ebben igazságod van; kompromisszumként legfeljebb annyit mondhatok, hogy ezt a $string paramétert ne string tipusúnak terkintsük, hanem byte-array tipusúnak, szemben a $encoding paraméterrel, ami tényleg string. Ebben az esetben azt mondhatnánk, hogy ami az előre definiált encoding-ben van, az string, amihez viszont külön meg kell adni a kódolást, az a byte-array.
> Miért kéne? A forrásfájl kódolását meg lehet adni a declare(encoding=) függvény meghívásával,
Azért ezt még nem értem pontosan: ha a forrásfájl nem ASCII-kompatibilis, akkor hogy fogja az értelmező megérteni a benne lévő declare(encoding)-ot, amiből megtudná, hogy a forrásfájl nem ASCII-kompatibilis?