對硬體不熟,但工作上還是常遇到一些常見的名詞,只好把它記下來。不過查了一下DIP這個詞,這不就是之前大學時上邏輯設計實驗就有用到的東西嗎?
雙列直插封裝(英文DIP, Dual in-line package),說穿了就是把IC封裝起來的方式。他的外型為長方型,然後會有兩排平行的針腳。他可以焊接在印刷電路板上,或是直接插入在DIP插座上。而之前學校使用的方式就是把他插在麵包板上。DIP元件一般會依據針腳的個數簡稱DIPn,下圖即為DIP20積體電路。
2013年7月13日 星期六
2013年7月5日 星期五
XML特殊字元處理 (C++)
在使用XML當作資料傳遞時,最常犯的錯就是自己產生的XML內容包含了一些特殊字元,導致無法正常顯示XML。特殊字元包括:
'
"
&
<
>
當遇到以上幾個字元時,必須做以下轉換:
'
"
&
<
>
以C++寫法為例,輸入一個string型態的字串,回傳已經做好特殊字元取代的字串
std::string XmlEscape(const std::string &rstrString)
{
ostringstream ossEscapeString;
unsigned char ch;
for(string::const_iterator iter = rstrString.begin(); iter != rstrString.end(); iter++ )
{
ch = static_cast(*iter);
switch(ch)
{
case '&':
ossEscapeString << "&";
break;
case '<':
ossEscapeString << "<";
break;
case '>':
ossEscapeString << ">";
break;
case '"':
ossEscapeString << """;
break;
case '\'':
ossEscapeString << "'";
break;
default:
ossEscapeString << ch;
break;
}
}
return ossEscapeString.str();
}
'
"
&
<
>
當遇到以上幾個字元時,必須做以下轉換:
'
"
&
<
>
以C++寫法為例,輸入一個string型態的字串,回傳已經做好特殊字元取代的字串
std::string XmlEscape(const std::string &rstrString)
{
ostringstream ossEscapeString;
unsigned char ch;
for(string::const_iterator iter = rstrString.begin(); iter != rstrString.end(); iter++ )
{
ch = static_cast
switch(ch)
{
case '&':
ossEscapeString << "&";
break;
case '<':
ossEscapeString << "<";
break;
case '>':
ossEscapeString << ">";
break;
case '"':
ossEscapeString << """;
break;
case '\'':
ossEscapeString << "'";
break;
default:
ossEscapeString << ch;
break;
}
}
return ossEscapeString.str();
}
訂閱:
文章 (Atom)