fire64
11.12.2009, 16:08
Помогите с преобразованием Hex символов содержащихся в URL в настоящие Hex символы
Скажем ввожу я в адресную панель браузера строку
netbios://10.207.8.28/My Media
В результате браузер запускает мою программу работающую с протоколом netbios://
и передает в нее строку
netbios://10.207.8.28/My%20Media
Я у себя в программе использую следующий код
int arglen = strlen(backupname);
for ( int i= 0; i < arglen; i++ )
{
FixHex(backupname);
}
backupname содержи принимаемый прогой параметр
void FixHex( char *pname )
{
bool havedhex = false;
while ( *pname )
{
if(havedhex)
{
*pname = *(pname + 2);
}
if ( *pname == '%' && *(pname + 1) == '2' && *(pname + 2) == '0')
{
*pname = '\x20';
havedhex = true;
}
pname++;
}
}
Но этот код служит только для преобразования %20 в пробел
подскажите как сделать автоматическое преобразование хекс значений со знаком % в их настоящий вид
Скажем ввожу я в адресную панель браузера строку
netbios://10.207.8.28/My Media
В результате браузер запускает мою программу работающую с протоколом netbios://
и передает в нее строку
netbios://10.207.8.28/My%20Media
Я у себя в программе использую следующий код
int arglen = strlen(backupname);
for ( int i= 0; i < arglen; i++ )
{
FixHex(backupname);
}
backupname содержи принимаемый прогой параметр
void FixHex( char *pname )
{
bool havedhex = false;
while ( *pname )
{
if(havedhex)
{
*pname = *(pname + 2);
}
if ( *pname == '%' && *(pname + 1) == '2' && *(pname + 2) == '0')
{
*pname = '\x20';
havedhex = true;
}
pname++;
}
}
Но этот код служит только для преобразования %20 в пробел
подскажите как сделать автоматическое преобразование хекс значений со знаком % в их настоящий вид