小编mar*_*zzz的帖子

为什么UTF-8在这种编码上失败?

我即将下载以UTF-8编码的页面.所以这是我的代码:

using (WebClient client = new WebClient())
{
    client.Headers.Add("user-agent", Request.UserAgent);

    htmlPage = client.DownloadString(HttpUtility.UrlDecode(resoruce_url));

    var KeysParsed = HttpUtility.ParseQueryString(client.ResponseHeaders["Content-Type"].Replace(" ", "").Replace(";", "&"));
    var charset = ((KeysParsed["charset"] != null) ? KeysParsed["charset"] : "UTF-8");
    Response.Write(client.ResponseHeaders);

    byte[] bytePage = Encoding.GetEncoding(charset).GetBytes(htmlPage);
    using (var reader = new StreamReader(new MemoryStream(bytePage), Encoding.GetEncoding(charset)))
    {
        htmlPage = reader.ReadToEnd();
        Response.Write(htmlPage);
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,它设置UTF-8为编码.但是,下载的标题,例如,在我的屏幕中显示为:

Sexy cover: 60 e più di “quei dischi” vietati ai minori
Run Code Online (Sandbox Code Playgroud)

而不是:

Sexy cover: 60 e più di “quei dischi” vietati ai minori
Run Code Online (Sandbox Code Playgroud)

有些事情是错的,但我找不到.有任何想法吗?

c# encoding utf-8

0
推荐指数
1
解决办法
832
查看次数

如何捕获iframe加载错误?

我有这个iframe:

<iframe id="website-overlay" src="link" onload="OverlayMostraCustomContenuto()"></iframe>
Run Code Online (Sandbox Code Playgroud)

但是即使加载错误,也会加载此函数,例如:

Load denied by X-Frame-Options: http://www.youtube.com/watch?v=Q4cQsoz4mFA&feature=share does not permit cross-origin framing.
Run Code Online (Sandbox Code Playgroud)

有没有办法知道iframe是否正确加载?我想是的,如果Firebug能够抓住它。

html javascript jquery

0
推荐指数
1
解决办法
8758
查看次数

两个DateTimes:一个工作,为什么不工作?

在我的应用程序中,我从Facebook收到了一些json.如果我试试这个:

utente.birthday = ((objectParsed.birthday != null) ? DateTime.Parse((string)objectParsed.birthday) : (DateTime?)null);
Run Code Online (Sandbox Code Playgroud)

日期为:

"birthday": "01\/01\/1996"
Run Code Online (Sandbox Code Playgroud)

它工作正常,但如果日期是:

"birthday": "09\/23\/1982",
Run Code Online (Sandbox Code Playgroud)

我得到String was not recognized as a valid DateTime.例外.哪里出错了?

.net c# datetime

0
推荐指数
1
解决办法
71
查看次数

我可以在方法中传递泛型类吗?

我有许多课程ErrorHandler,每个课程都做不同的事情.每个类都在命名空间内.

所以:

namespace1.ErrorHandler
namespace2.ErrorHandler
namespace3.ErrorHandler
Run Code Online (Sandbox Code Playgroud)

指的是三个不同的类.我想要一个带有泛型ErrorHandler参数的方法; 所以由于我传递给那个方法,它使用它.

可能吗?

.net c#

0
推荐指数
1
解决办法
68
查看次数

WebServices是否在.NET上异步/同步?

我从客户端调用了30次WebService方法(asmx):

for (var i = 0; i < 30; i++) {
    WSCustom.Test(i,
        function (res) {
            $("#Results").append(res + "<br />");
        }, 
        function (res) { 
            $("#Results").append(res.get_message() + "<br />"); 
        }
    );
}
Run Code Online (Sandbox Code Playgroud)

这是WebService方法:

[WebMethod(EnableSession = true)]
public string Test(int i)
{
    DateTime m_oStart = DateTime.Now;
    WebClient m_oClient = new WebClient();

    if (i % 2 == 0)
    {
        byte[] res = m_oClient.DownloadData("http://www.repubblica.it/");
    }

    return String.Format("TotalSeconds:{0}", new string[] { DateTime.Now.Subtract(m_oStart).TotalSeconds.ToString() });
}
Run Code Online (Sandbox Code Playgroud)

我的方面是asynch回复.

我的意思是,我应该立即得到15个回复(奇怪的是i它立即返回),并且在剩余的回复期间(需要时间下载页面服务器端).

但事实上,outpup是不同的:它立即处理第一个电话.比,它等待第二个完成,比我收到一些奇怪的i回复,依此类推.

所以它根本不是异步的.

WebServices如何管理.NET中的客户端调用?我可以在整个过程中执行asynch吗?

编辑

有了EnableSession …

.net c# asynchronous web-services

0
推荐指数
1
解决办法
95
查看次数

如何下载和保存图像两次?

这是我的代码(取自stackoverflow)下载,检查并在固定路径上存储图像:

private static void DownloadRemoteImageFile(string uri, string path)
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    if ((response.StatusCode == HttpStatusCode.OK ||
        response.StatusCode == HttpStatusCode.Moved ||
        response.StatusCode == HttpStatusCode.Redirect) &&
        response.ContentType.StartsWith("image", StringComparison.OrdinalIgnoreCase))
    {
        using (Stream inputStream = response.GetResponseStream())
        using (Stream outputStream = File.OpenWrite(path))
        {
            byte[] buffer = new byte[4096];
            int bytesRead;
            do
            {
                bytesRead = inputStream.Read(buffer, 0, buffer.Length);
                outputStream.Write(buffer, 0, bytesRead);
            } while (bytesRead != 0);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,让我们说,我倒是对双方创建图像pathpath + "\duplicates\";:什么是最好的方式做到这一点?

回想一下具有不同路径的功能(所以我需要下载两次)或者我可以使用多个outputStream

.net c# image file download

0
推荐指数
1
解决办法
79
查看次数

你会如何迭代矢量?

这是我的代码:

std::vector<int> array;
array.push_back(1);
array.push_back(2);
array.push_back(3);
array.push_back(4);
array.push_back(5);

for (int i = 0; i < array.size(); i++) {
    if(array[i]==2 || array[i]==5) {
        array.erase(array.begin() + i);
        printf("### REMOVED ###\n", array[i], i);
    } 

    printf("inside val: %d | index: %d\n", array[i], i);
}
Run Code Online (Sandbox Code Playgroud)

但正如你所看到的,它输出:

inside val: 1 | index: 0
### REMOVED ###
inside val: 3 | index: 1
inside val: 4 | index: 2
### REMOVED ###
inside val: 5 | index: 3
Run Code Online (Sandbox Code Playgroud)

当我的"期望"是:

inside val: 1 | index: 0 …
Run Code Online (Sandbox Code Playgroud)

c++ iteration foreach for-loop cycle

0
推荐指数
1
解决办法
71
查看次数

我应该使用哪种STL来完成这项任务?

我需要一个必须添加/删除一些结构的队列,例如:

struct MyObject
{
  int offset;
  BYTE status, data1, data2;
  double beatPos;

  enum Status
  {
    isOff = 8,
    isOn = 9,
  };
}   
Run Code Online (Sandbox Code Playgroud)

当我.Add()是一个元素时,这个队列必须把元素放在正确的位置,因为这个beatPos值必须从下面(队列的顶部,即我要弹出的下一个元素)到上面(最后一个元素)排序我将从中提取).

我看到有std :: priority_queue,但我不确定我是否可以选择哪个是排序字段.

此外,一旦我在列表中添加了一些结构,我想删除第一个元素(例如)beatPos=1,567(例如,可能位于列表中间;不一定在开头).

有线索吗?

c++ queue stack list

0
推荐指数
2
解决办法
85
查看次数

如何避免这种内存泄漏?

这是我的代码:

void MIDITest::CreateNoteBlock() {
    IMidiMsgExt* midiMessage = new IMidiMsgExt;
    midiMessage->MakemidiMessageMsg(57, 100, 0, 0, 0);
    queuedNotes.insert(*midiMessage);

    midiMessage = new IMidiMsgExt;
    midiMessage->MakemidiMessageMsg(60, 100, 0, tickSize * 38, 0);
    queuedNotes.insert(*midiMessage);

    midiMessage = new IMidiMsgExt;
    midiMessage->MakemidiMessageMsg(62, 100, 0, 0, 0);
    queuedNotes.insert(*midiMessage);

    midiMessage = new IMidiMsgExt;
    midiMessage->MakemidiMessageMsg(65, 100, 0, tickSize * 32, 0);
    queuedNotes.insert(*midiMessage);

    midiMessage = new IMidiMsgExt;
    midiMessage->MakemidiMessageMsg(57, 0, tickSize * 111, 0);
    queuedNotes.insert(*midiMessage);

    midiMessage = new IMidiMsgExt;
    midiMessage->MakemidiMessageMsg(60, 0, tickSize * 111, 0);
    queuedNotes.insert(*midiMessage);

    midiMessage = new IMidiMsgExt;
    midiMessage->MakemidiMessageMsg(62, 0, tickSize * 75, …
Run Code Online (Sandbox Code Playgroud)

c++ methods free memory-leaks

0
推荐指数
2
解决办法
107
查看次数

私有变量的读取时间晚于成员初始化列表?

我是这堂课:

class IPianoRoll : public IControl
{
private:
    int x, y;
    int w = 30 * numStep + 1;
    int h = 8 * numSemitones + 1;
    int o = 5;

public:
    IPianoRoll(IPlugBase* pPlug, int pX, int pY) : IControl(pPlug, IRECT(pX, pY, pX + o + w + o, pY + o + h + o)) {
        x = pX;
        y = pY;
    }
}
Run Code Online (Sandbox Code Playgroud)

但似乎私有变量值比成员初始化列表"更晚"可用.所以o,wh不符合我的价值观初始化,它需要不同的值.

有没有办法预启动私有变量?

c++ initialization private

0
推荐指数
1
解决办法
57
查看次数