Äkkiseltään arvelisin kyse olevan siitä, että chr() tulostaa yksitavuisen merkin. Ubuntu käyttää UTF-8-merkistöä, jossa merkit 0...127 ovat samat kuin ASCIIssa, mutta siitä eteenpäin käytetään kahta tavua. Jos yrität tulostaa chr()-funktiolla merkin, jonka koodi on >= 128, UTF-8 ei pysty esittämään sitä.
Käytä funktiota unichr().