hhhmm, sounds a little strange all right.
to get the value of a computed filed it is just
var keys = getComponent("<controlId>").value;
To test script like this to see is it working you can print to the server console by using " print(<value>) " in server side script or " console.log(<value>) " in client side. Makes it much easier to deal with then making guesses and adding controls for display purposes. Nothing jumps out of your code as wrong, but I no computed fields can apply converters and escaping etc. the fact that whats appearing in the field works when hard coded again leaves me to believe that the var type or the format of the string being sent in is not correct.
leave the computed field on the page and do a " print("QString: " + qstring) " and see do they match. Also with javascript using the " print("Type: " + typeof qstring) " command can be handy to make sure you are supplying the correct variable type to a property etc.
Simon