When it is encrypted it is all binary and not easily editable outside of the client.
But once it's encrypted I can't get the text version back again (by say "decrypting" it permanently)
I see. There is not yet the feature to let you revert a wallet back to being unencrypted.
There is, however, an easy way to access the contents of the wallet using RPC.
Edit your bitcoin.conf to put in rpcuser and rpcpassword entries.
Run bitcoin as a server, e.g.,
$ ./bitcoin-qt -server
Open it for RPC
$ ./bitcoind walletpassphrase [passphrase] 1000
then you can
$ ./bitcoind dumpprivkey [bitcoin address]
$ ./bitcoind importprivkey [bitcoin address] [label]
Does that help?
p.s., Editing wallet.dat with a text editor is a bad, bad idea.