小编var*_*bas的帖子

UriBuilder().查询将错误地编码非ASCII字符

我正在开发一个asp.net mvc 4 Web应用程序.我正在使用.net 4.5.现在我有以下WebClient()课程:

using (var client = new WebClient())
{
    var query = HttpUtility.ParseQueryString(string.Empty);

    query["model"] = Model;
    //code goes here for other parameters....

    string apiurl = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiURL"];
    var url = new UriBuilder(apiurl);
    url.Query = query.ToString();

    string xml = client.DownloadString(url.ToString());
    XmlDocument doc = new XmlDocument();
    //code goes here ....

}
Run Code Online (Sandbox Code Playgroud)

现在我已经注意到一个问题,当这些参数中的一个包含非ASCII承租人如£,¬等....

现在最后的查询将有任何非ASCII字符(例如£)编码错误(as %u00a3).我读到了这个问题,似乎我可以取代: -

url.Query = query.ToString();
Run Code Online (Sandbox Code Playgroud)

url.Query = ri.EscapeUriString(HttpUtility.UrlDecode(query.ToString()));    
Run Code Online (Sandbox Code Playgroud)

现在使用后面的方法将编码£%C2%A3正确的编码值.

但我面临的问题是,url.Query = Uri.EscapeUriString(HttpUtility.UrlDecode(query.ToString())); …

.net c# asp.net asp.net-mvc http

23
推荐指数
1
解决办法
2413
查看次数

什么是WPF相当于在Java SWT中使用ImageData在Canvas上显示图像

什么是以下Java SWT代码的WPF等价物?我想从RGBA值列表创建一个图像并在Canvas上显示.

private Image GetImage()
{

    ImageData imageData = new ImageData(imageWidth, imageHeight,32,palette);

    int pixelVecLoc=0;
    for (int h = 0; h<imageHeight && (pixelVecLoc < currentImagePixelVec.size()); h++)
    {
        for (int w = 0; w<imageWidth && (pixelVecLoc < currentImagePixelVec.size()); w++)
        {
            int p = 0;
            Pixel pixel = currentImagePixelVec.get(pixelVecLoc);
            p = (pixel.Alpha<<24) | (pixel.Red<<16) | (pixel.Green<<8) | pixel.Blue;                
            imageData.setPixel(w, h, p);            
            pixelVecLoc++;
        }
    }

    imageData = imageData.scaledTo(imageScaleWidth, imageScaleHeight);
    Image image = ImageDescriptor.createFromImageData(imageData).createImage();
    return image;   
}
Run Code Online (Sandbox Code Playgroud)

然后在Canvas上绘制它:

gc.drawImage(image, 0, 0); 
Run Code Online (Sandbox Code Playgroud)

c# wpf-controls

7
推荐指数
1
解决办法
341
查看次数

使用VBA选择"查找"的第二个结果

我试图做到这一点,以便我可以找到"灯"的第二个结果,以防这个术语出现各种情况.下面的代码找到了所考虑范围内的第一个匹配项.

    Dim ws As Worksheet
    Dim rng1 As Range
    Dim y As Range

     Columns("B:B").Select
Selection.Find(What:="1", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Select
    Set x = Range(Selection, Selection.End(xlDown)).Offset(0, 3)
    Range(x.Address(0, 0)).Select
    Selection.Find(What:="Lights", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Activate

      Selection.FindNext(After:=ActiveCell).Activate
      Selection.FindNext(After:=ActiveCell).Select
Run Code Online (Sandbox Code Playgroud)

excel vba find

4
推荐指数
1
解决办法
1万
查看次数

VB.NET没什么日期时间?DataReader的

一个简单的问题,if inline:dim mydate as datetime?


'版本1(工作!)

If dtReader.IsDBNull(dtReader.GetOrdinal("mydate")) Then
    mydate = Nothing
Else
    mydate = dtReader.GetDateTime(dtReader.GetOrdinal("mydate"))
End If
Run Code Online (Sandbox Code Playgroud)

价值=没有


'版本2(DOENSN'T WORK!)

mydate = If(dtReader.IsDBNull(dtReader.GetOrdinal("mydate")), Nothing, dtReader.GetDateTime(dtReader.GetOrdinal("mydate")))
Run Code Online (Sandbox Code Playgroud)

价值=#12:00:00#


有人可以解释为什么版本2获得此值吗?

vb.net datetime nullable datareader getvalue

2
推荐指数
1
解决办法
428
查看次数

标签 统计

c# ×2

.net ×1

asp.net ×1

asp.net-mvc ×1

datareader ×1

datetime ×1

excel ×1

find ×1

getvalue ×1

http ×1

nullable ×1

vb.net ×1

vba ×1

wpf-controls ×1