3.07.2017

溫度字符表示法

這一次要記下來的,並不是什麼很特別的重點,而是一份小小的筆記。

眾所周知,我們的溫度單位有:攝氏 (Anders Celsius)華氏 (Daniel Gabriel Fahrenheit),還有一個比較不常聽到的凱氏 (William Thomson, 1st Baron Kelvin)。那麼,他們在C語言以及HTML語法當中該如何表示?我們先來看一下C語言的表示法:
#include <stdio.h>
#define  __FUNC__    __func__

int 
main(argc, argv, envp)
int argc;
char *argv[];
char **envp;
{
    printf("Hello!! World!! \r\n");
    printf("%s %s %s: %s (%d) \r\n", __DATE__, __TIME__, __FILE__, __FUNC__, __LINE__);
    printf("The temperature is: 100 %c%cC. \n", 0xA2, 0x58);
    printf("The temperature is: 100 %c%cF. \n", 0xA2, 0x58);
    printf("The temperature is: 100 %c%cK. \n", 0xA2, 0x58);
    printf("\n");
    printf("The temperature is: 100 %c%c. \n", 0xA2, 0x4A);
    printf("The temperature is: 100 %c%c. \n", 0xA2, 0x4B);

    return 0;
}
執行結果如下:


注意到了嗎?前面3行和後面2行的差異在那?前面3行的溫度字符「°」是用全型字符的表示法,佔2個Byte;再加上字母C、F、K,總共是3個Byte。

而後面2行的「℃」「℉」就已經是用一個全型字符來表示了,所以只佔2個Byte。所以:

溫度符號「°」,在C語言中的字符代碼就是0xA2, 0x58
攝氏溫符「℃」,在C語言中的字符代碼就是0xA2, 0x4A
華氏溫符「℉」,在C語言中的字符代碼就是0xA2, 0x4B

至於是何種看得較為順眼?想當然爾,是後兩者。如果是在HTML語法裡面又該如何表示?
<!DOCUMENT HTML PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN" "http://www.w3.prg/TR/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
The temperature is: 100 &#176;C</br>
The temperature is: 100 &#176;F</br>
The temperature is: 100 &#176;K</br>

The temperature is: 100 &#8451; </br>
The temperature is: 100 &#8457; </br>
</body>
</html>
這裡就要好好地分析一下:原本的溫度符號「°」,它的字符代碼為0x00B0,轉換成十進制就是176

同理可證,攝氏和華氏的溫度符號為「℃」「℉」,它們的字符代碼分別為0x21030x2109,轉換十進制就是84518457


謹記!

沒有留言:

張貼留言