A: 

General practice is to completely avoid non-Latin characters. They tend to cause problems.

mingos
Not really a solution to the problem, though.
akent
Not everybody speaks latin!
Alex Brown
No, this does not solve the problem. I'm just pointing out that the requested solution is not always considered a Good Thing (tm). @Alex: for your sake, I hope your comment was a joke :|
mingos
+2  A: 

Slowly, the Unix world is moving from ASCII and other regional encodings to UTF-8. You need to be running a UTF terminal, such as a modern xterm or putty.

In your ~/.bash_profile set you language to be one of the UTF-8 variants.

export LANG=C.UTF-8
or
export LANG=en_AU.UTF-8
etc..

You should then be able to write UTF-8 characters in the terminal, and include them in bash scripts.

#!/bin/bash
echo "UTF-8 is græat ☺"

See also: http://serverfault.com/questions/11015/utf-8-and-shell-scripts

brianegge
On a TTY (not xterm), the terminal might not be UTF-8 capable until `unicode_start` is run. (This is unrelated to locale and shell/application support.) Some distributions enable this at boot, but some don't.
ephemient
+1  A: 

What does this command show?

locale

It should show something like this for you:

LC_CTYPE="da_DK.UTF-8"
LC_NUMERIC="da_DK.UTF-8"
LC_TIME="da_DK.UTF-8"
LC_COLLATE="da_DK.UTF-8"
LC_MONETARY="da_DK.UTF-8"
LC_MESSAGES="da_DK.UTF-8"
LC_PAPER="da_DK.UTF-8"
LC_NAME="da_DK.UTF-8"
LC_ADDRESS="da_DK.UTF-8"
LC_TELEPHONE="da_DK.UTF-8"
LC_MEASUREMENT="da_DK.UTF-8"
LC_IDENTIFICATION="da_DK.UTF-8"
LC_ALL=

If not, you might try doing this before you run your script:

LANG=da_DK.UTF-8

You don't say what happens when you run the script and it encounters these characters. Are they in the todo file? Are they entered at a prompt? Is there an error message? Is something output in place of the expected output?

Try this and see what you get:

read -p "Enter some characters" string
echo "$string"
Dennis Williamson
running LANG=da_DK.UTF-8 works! thanks a lot! :)
timkl