Qt_IM_27 - 8BitsCoding/RobotMentor GitHub Wiki
์ธ์ฝ๋ฉ(encoding)์ด๋ ์ ๋ณด์ ํํ๋ ํ์์ ํ์คํ, ๋ณด์, ์ฒ๋ฆฌ ์๋ ํฅ์, ์ ์ฅ ๊ณต๊ฐ ์ ์ฝ ๋ฑ์ ์ํด ๋ค๋ฅธ ํํ๋ ํ์์ผ๋ก ๋ณํ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ๋งํ๋ค.
Base64๋ Binary Data๋ฅผ Text๋ก ๋ฐ๊พธ๋ Encoding ์ค ํ๋๋ก Binary๋ฅผ 6bit์ฉ ์๋ผ์ ์๋ ๋งคํ์ผ๋ก ์ธ์ฝ๋ฉํ๋ค.
Base64๋ก ์ธ์ฝ๋ฉํ๋ฉด ๋ฐ์ดํฐ์ ์์ 33% ์ฆ๊ฐํ๋ค??!!
๊ทธ๋ผ ์์ฐ๋??
๋ฌธ์๋ฅผ ์ ์กํ๊ธฐ ์ํด ์ค๊ณ๋ Media(Email, HTML)์ ์ด์ฉํด ํ๋ซํผ ๋ ์ ์ผ๋ก Binary Data(์ด๋ฏธ์ง, ์ค๋์ค)๋ฅผ ์ ์กํ ํ์๊ฐ ์๋ค๋ฉด ASCII๋ก ์ธ์ฝ๋ฉ ๋ ๋ฐ์ดํฐ๋ ๋ช๊ฐ์ง ๋ฌธ์ ๊ฐ ์๋ค.
ASCII๋ 7bit ์ธ์ฝ๋ฉ์ด๊ธฐ์ 1bit๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
์ผ๋ถ ์ ์ด๋ฌธ์ ์ฒ๋ฆฌ ๋ฐฉ์
๋ฑ์ ๋ฌธ์ ๋ก Base64๋ก ๋ณด๋ด๋๊ฒ์ด ๋ ์ ๋ฆฌํ๋ค.
#include <QtCore/QCoreApplication>
#include <qdebug.h>
QString makeData() {
QString data;
for (int i = 0; i < 10; i++) {
data.append("Hello\r\n");
}
return data;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString data = makeData();
QByteArray bytes(data.toLatin1());
QByteArray encoded = bytes.toBase64();
QByteArray decode = encoded.fromBase64(encoded);
qInfo() << "Encoded: " << encoded;
qInfo("");
qInfo() << "Decoded: " << decode;
return a.exec();
}