Do LOWERCASE and UPPERCASE work on accents (high acsii)? My testing does not show this is 100% correct, but I was wondering if it was a codepage issue? I am not running SQL. LOWERCASE(JÈAN); // → I get jÈan, but I want jèan LOWERCASE(‘À CÔTI DE’); // → I get À cùti de, but I want à côti de yet LOWERCASE(‘FRANÇIOS’); // → I get françois which is correct. Any tips are appreciated! Thanks, john [?]
I’ve run this piece of code on my PC (CP 850) with no problems.
St := 'äëïöü áéíóú àèìòù âêîôû'; MESSAGE('%1 %2 %3', St, UPPERCASE(St), LOWERCASE(UPPERCASE(St)));So I guess it’s a codepage issue.
If you get françois with LOWERCASE(‘FRANÇIOS’); I think it’s not correct[:p] IF LOWERCASE(JÈAN) gives jÈan it’s because in the codepage u use there is no correspondancy to È. but you can also write Jehan[;)] John
Any freakin’ idea how to change a codepage in XP? I’m on 437 now, would like to move to 850. Thanks, john. p.s. LOWERCASE(UPPERCASE(String)); returns the original string, so it’s a codepage issue for sure!
Upper and lower is done using the mapping of characters in fin.stx, in the casetable entry (each character is written: aA for example). Windows API calls are not used for this purpose so it is not a code page issue. If a character is not present or a mapping is incorrect you will get an incorrect result with these functions. Your LOWERCASE(UPPERCASE()) returns the original string because characters that are not mapped are untouched, and those that are mapped are symetrical. Check the content of fin.stx - use an OEM editor like EDIT because this file is in OEM.