How do I change a shell scripts character encoding?

后端 未结 2 511
[愿得一人]
[愿得一人] 2020-12-03 07:30

I am using Gina Trapiani\'s excellent todo.sh to organize my todo-list.

However being a dane, it would be nice if the script accepted special danish characters like

相关标签:
2条回答
  • 2020-12-03 08:19

    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"
    
    0 讨论(0)
  • 2020-12-03 08:33

    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: https://serverfault.com/questions/11015/utf-8-and-shell-scripts

    0 讨论(0)
提交回复
热议问题