tk: I'm afraid that during the advogato outage I already came up with a solution using off-the-shelf software. Specifically, GNU Screen. It turns out that screen has a little-known and poorly (in fact incorrectly) documented option that is designed to allow substituting international characters on terminals that don't support particular characters. The option is general-purpose enough to allow substituting any character for any other, and therefore adding the following line to my .screenrc produces exactly the effect I wanted (it must be one line with no spaces between the quotes):
termcapinfo xterm 'XC=B%,an,AN,bo,BO,cp,CP,dq,DQ,er,ER,fs,FS,gt,GT,hu,HU, iv,IV,jw,JW,kx,KX,ly,LY,mz,MZ,na,NA,ob,OB,pc,PC,qd,QD,re,RE,sf,SF,tg,TG,uh,UH, vi,VI,wj,WJ,xk,XK,yl,YL,zm,ZM,16,27,38,49,50,61,72,83,94,05'
I was hoping that advogato would come back quickly so I could post the solution before anybody wasted too much time solving it. I hope that you didn't put too much effort into that program :)
bgeiger: I'm going to learn to read rot13, that's how :) I started using this utility on the train last night, and by the end of the train ride this morning I already found that I no longer need to actually type things in to find out what they say - I know enough key letters that I can figure out most words after a little effort. I even was able to recognise a typo - I realised that "hfvas" couldn't possibly be correct and fixed it. Some words I already recognise directly: "be" and "or" swap places in rot13, "gur" is "the" (I can also recognise a bunch of other words starting in "gu", such as "gung", "guvf", "guna", "gurer", "guvat"). I can also recognise "vat" as a suffix ("ing") and I know the letter substitutions for, among other things, all five vowels. I expect that within a week of working in this mode I'll be able to read rot13 pretty easily.
Someone on k5 mentioned the polarizing-glasses approach also - the problem with that for my situation is that I'm on an extremely shoestring budget and don't really have the option of going out and buying a special screen filter and special glasses. Plus I expect I'd look a bit silly wearing 3D goggles on the train ;)
The one risk I'm taking using a standard encoding like rot13 is that someone will be on the train who already knows how to read it - I know that such people exist. I think that risk is miniscule enough (along with the parallel risk of someone with a photographic memory and a strong enough desire to know what I'm doing that they'd type it into their computer later and decode it that way) that I'm not going to worry about it. In general on a given train journey there are one or two people in a position to read my screen even if they wanted to, and of those, probably 90+% don't want to. What are the chances of the one or two exceptions per week (if that) being among the tiny fraction of the Earth's population that can read rot13? I've wanted to learn to read rot13 for a while anyway - learning that gives me a (small) external benefit, where learning my own private encoding would just make it that much harder to learn rot13 separately.