簡體   English   中英

C++ 將 HexString 轉換為擴展的 Ascii 代碼在文本文件中不顯示正確的 ascii 代碼

[英]C++ convert HexString to extended Ascii code not show correct ascii code in the text file

如何將十六進制字符串轉換為擴展的 ascii 代碼符號代碼並將轉換后的代碼寫入文本文件。

示例輸入字符串:

標准:字符串strInput =“FF2139FF”

示例 output 字符串在文本文件中應為“ÿ.9ÿ”。

我嘗試編寫如下程序以寫入文本文件。

#include <string>
using namespace std;

string ConvertHexStringToAsciiString(string sInputHexString, int step)
{
    int len = sInputHexString.length();
    string sOutputAsciiString;
    for (int i = 0; i < len; i += step)
    {
        string byte = sInputHexString.substr(i, step);
        char chr = (char)(int)strtol(byte.c_str(), nullptr, 16);
        sOutputAsciiString.push_back(chr);
    }
    return sOutputAsciiString;
}

void main()
{
    string sInputHexString = "FF2139FF";

    string sOutputAsciiString = "";
    sOutputAsciiString = ConvertHexStringToAsciiString(sInputHexString, 2);

    const char* sFileName = "E:\\MyProgramDev\\Convert_HexString_To_AsciiCode\\Convert_HexString_To_AsciiCode\\TestFolder\\1.txt";
    FILE* file = fopen(sFileName, "wt");
    if (nullptr != file)
    {
        fputs(sOutputAsciiString.c_str(), file);
        fclose(file);
    }
}

它似乎工作,但是當我用記事本打開文本文件 1.txt 時,我看不到 ÿ 和 only.9 顯示? 我不確定如何使用記事本正確顯示它或我的代碼錯誤?

謝謝。

使用更好的記事本 - 甚至更好的任何 hexeditor 來查看結果。

嘗試例如XVI 32 十六進制編輯器

我找到了一種方法,將這個 HexString FF 拆分為兩個 BYTE(unsigned char) "F" 和 "F",然后一起構造並轉換為十進制。 它可以顯示正確的字母。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM