Hi all,
We are having problems when a user enters special characters ($,<,> etc) in an interface. The data is stored in the DB and later on reloaded in the form incorrectly.
I have checked in our Oracle DB that value for NLS_CHARACTERSET is WE8ISO8859P1 and the value for NLS_NCHAR_CHARACTERSET is AL16UTF16
Does that mean that our DB is not configured to handle special characters? Should we ask our DBA to change the configuration in order to support the special characters?
Alternatively, is there any way to solve the problem from the code? I have seen in similar questions that a clean or substitute function could help. I think the best option is to write a funcion with multiple substitutes to store < instead of "<" and so on.
Thanks a lot!
Discussion posts and replies are publicly visible
REGEX would probably work, but you could also use out-of-the-box Appian functions.
The stripwith() function will remove any characters you define as invalid. So if you wanted to specifically remove the some symbols, you can use stripwith() like this:
stripwith(
[Text Here],
"@*^<>+)/("
)
Thanks, removing the symbols is not desired because the users want to see them, so I think is better to substitute them.
However I would prefer to do the configuration at the DB level, as doing it in the code will require to change multiple places.
WE8ISO8859P1 only stores 8 bit characters. I suggest to change this to a charset which support unicode.
It is interesting that I have just discovered that the problem only happens with the euro € symbol..
A while ago we had an issue with users entering emojis in the mobile app. By default MySQL can only store 2-byte characters but emojis are 4-byte. This just breaks when storing to DB.
Was discovered in production ...
Ok, it is clear to me now that the encoding WE8ISO8859P1 does not support "€" symbol
https://forums.devart.com/viewtopic.php?t=21974
https://stackoverflow.com/questions/29085485/how-to-store-%E2%82%AC-in-oracle-we8iso8859p1
I think the best solution is to update the encoding settings at the database level.
Thanks for your ideas
lesson learnt: hire testers funny enough to use emoticons on their comments :)