V každém ze zmiňovaných jazyků (i řady dalších) mám praktické, minimálně několik trvající, zkušenosti. Zcela drsně to začnete cítit, až dostanete požadavek, že program musí umět všechny světové jazyky - a nebo dostanete převodní čískou tabulku, abyste to počínštili pro Asii.
Z vámi zmiňovaných jazyků PHP řetězce nemá vůbec, nutí vás emulovat práci s textem skrze bajtová pole v nějaké znakové sadě. Nakonec vás stejně donutí pracovat v UTF-8, protože je to jediné kde je plná sada funkcí včetně regulárních výrazů a dalších věcí.
Java a C# má práci s řetězci v jazyce, na rozdíl od PHP - a má datový typ String. Zde je ale omezení, že unicode řetězec je vnímán jako "pole 16bitových unsigned integerů", a tedy ve skutečnosti je to vnitřně UTF-16 kódování. Takže občas pracuje se znaky (kódovými pozicemi), občas s těmi 16bitovými kódy v UTF-16 kódování - a celkově oba tyto jazyky tím obtěžují, že ne vždy je "znak" skutečným znakem.
Je vůbec zvláštní, jak mají programovací jazyky problém implementovat bez komplikací a bez obtěžování nějakou znakovou sadou (a nějakými vnitřními reprezentacemi toho řetězce uvnitř jazyka) - takovou základní věc, jak je textový řetězec v dnes standarndím Unicode. Z vámi zmiňovaných jazyků to dokázal pouze Python.
Jinak dejte si do google "python string" - pokud chcete odkaz na referenci a standard pythonu, nebo "python string tutorial" - pokud chcete něco pro prvotní představu. Lupa by mi asi zakázala komentář, pokud bych sem dal haldu odkazů.