⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sampleconv.c

📁 专门介绍网络爬虫设计的论文,写得非常好啊.希望大家好好学习
💻 C
字号:
/***************************************************************************** *                                  _   _ ____  _ *  Project                     ___| | | |  _ \| | *                             / __| | | | |_) | | *                            | (__| |_| |  _ <| |___ *                             \___|\___/|_| \_\_____| * * $Id: sampleconv.c,v 1.1 2006-04-09 08:39:08 bagder Exp $ *//*   This is a simple example showing how a program on a non-ASCII platform   would invoke callbacks to do its own codeset conversions instead of    using the built-in iconv functions in libcurl.   The IBM-1047 EBCDIC codeset is used for this example but the code   would be similar for other non-ASCII codesets.   Three callback functions are created below:        my_conv_from_ascii_to_ebcdic,        my_conv_from_ebcdic_to_ascii, and        my_conv_from_utf8_to_ebcdic   The "platform_xxx" calls represent platform-specific conversion routines. */#include <stdio.h>#include <curl/curl.h>CURLcode my_conv_from_ascii_to_ebcdic(char *buffer, size_t length){    char *tempptrin, *tempptrout;    size_t bytes = length;    int rc;    tempptrin = tempptrout = buffer;    rc = platform_a2e(&tempptrin, &bytes, &tempptrout, &bytes);    if (rc == PLATFORM_CONV_OK) {      return(CURLE_OK);    } else {      return(CURLE_CONV_FAILED);    }}CURLcode my_conv_from_ebcdic_to_ascii(char *buffer, size_t length){    char *tempptrin, *tempptrout;    size_t bytes = length;    int rc;    tempptrin = tempptrout = buffer;    rc = platform_e2a(&tempptrin, &bytes, &tempptrout, &bytes);    if (rc == PLATFORM_CONV_OK) {      return(CURLE_OK);    } else {      return(CURLE_CONV_FAILED);    }}CURLcode my_conv_from_utf8_to_ebcdic(char *buffer, size_t length){    char *tempptrin, *tempptrout;    size_t bytes = length;    int rc;    tempptrin = tempptrout = buffer;    rc = platform_u2e(&tempptrin, &bytes, &tempptrout, &bytes);    if (rc == PLATFORM_CONV_OK) {      return(CURLE_OK);    } else {      return(CURLE_CONV_FAILED);    }}int main(void){  CURL *curl;  CURLcode res;  curl = curl_easy_init();  if(curl) {    curl_easy_setopt(curl, CURLOPT_URL, "curl.haxx.se");    /* use platform-specific functions for codeset conversions */    curl_easy_setopt(curl, CURLOPT_CONV_FROM_NETWORK_FUNCTION,                     my_conv_from_ascii_to_ebcdic);    curl_easy_setopt(curl, CURLOPT_CONV_TO_NETWORK_FUNCTION,                     my_conv_from_ebcdic_to_ascii);    curl_easy_setopt(curl, CURLOPT_CONV_FROM_UTF8_FUNCTION,                     my_conv_from_utf8_to_ebcdic);    res = curl_easy_perform(curl);    /* always cleanup */    curl_easy_cleanup(curl);  }  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -