C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■9201  Re[15]: ★11月大阪、12月東京検討会
□投稿者/ 中博俊@管理人 -(2007/10/21(Sun) 15:57:01)
>
    む。
    東京公演いいな。
    2コマしてくれるならいこか!1月に
記事No.8137 のレス /過去ログ22より / 関連記事表示
削除チェック/

■56463  Re[5]: 正規表現について
□投稿者/ ポンポポン -(2011/01/14(Fri) 14:19:49)
    shuさま

    お返事が大変遅くなりまして申し訳ありませんでした。
    検索対象文字列内には、TITLEとURLの組み合わせが複数存在するため、下記の通りとすることで実現できました。

    \[title:(?<title>.+?)\]:(?<url>http:\/\/[a-zA-Z0-9.$,;:&=?!*~@#_()\-%/+]+)

    ※[[title:aaaaa]]:http://〜 のようにtitleの後ろの ] が複数ある場合に、aaaaa] と抽出されてしまいますが、とりあえず解決です。

    ご教授いただき、ありがとうございました!
     
記事No.56122 のレス / END /過去ログ95より / 関連記事表示
削除チェック/

■56464  anyURI型へのデータ格納
□投稿者/ ペンギン -(2011/01/14(Fri) 14:26:41)

    分類:[.NET 全般] 

    こんにちは

    String型のオブジェクトをデータセットのURI型項目に格納するとエラーが発生します。

    以下を実施した際、System.ArgumentExceptionが発生します。

    --------------------------------------------------------------------------------------------------
    private namespace.DS_WORKERCD dS_WORKERCD1;
    DataRow oDataRow;
    oDataRow = dS_WORKERCD1.Tables[oDataRowArray[0]["MAIN_TBL"].ToString()].NewRow();
    oDataRow[oDataRowArray2[j]["FIELD_ID"].ToString()] = DATA_DS.Tables[PA_FORM_ID].Rows[i][oDataRowArray2[j]["FIELD_ID"].ToString()];//ここの処理でエラーがキャッチされます
    --------------------------------------------------------------------------------------------------

    エラーメッセージは以下の通りです。

    「System.ArgumentException: 値の型が列の型と合いません。」
    「値の型が列の型と合いません。列 WKCD に <testname> を格納できませんでした。 必要な型は Uri です。」

    DS_WORKERCD.xsdの定義情報は以下の通りです。
    ---------------------------------------------------------------------------------------------------
    <?xml version="1.0" standalone="yes" ?>
    <xs:schema id="DS_WORKERCD" targetNamespace="http://www.tempuri.org/DS_WORKERCD.xsd" xmlns:mstns="http://www.tempuri.org/DS_WORKERCD.xsd"
    xmlns="http://www.tempuri.org/DS_WORKERCD.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
    <xs:element name="DS_WORKERCD" msdata:IsDataSet="true" msdata:Locale="ja-JP">
    <xs:complexType>
    <xs:choice maxOccurs="unbounded">
    <xs:element name="M_WORKERCD">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="WKCD" type="xs:anyURI" />
    <xs:element name="WKNM" type="xs:anyURI" minOccurs="0" />
    <xs:element name="SECT" type="xs:anyURI" minOccurs="0" />
    <xs:element name="BARCODE" type="xs:anyURI" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:choice>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    ----------------------------------------------------------------------------------------------------

    String型の値をデータセットのanyURI型の項目に挿入することが出来ないため、エラーが発生していると考えております。
    対応方法を教えていただけないでしょうか。

    よろしくお願い致します。
親記事 /過去ログ95より / 関連記事表示
削除チェック/

■94982  Web上から読んだXMLがUTF-8の場合に文字化けします
□投稿者/ c#初心者 -(2020/06/08(Mon) 23:50:46)

    分類:[C#] 

    C#です。

    WebAPIを使ってアプリケーションを作っています。

    例:
    response = webClient.UploadString("https://example.com/api", "POST", postData);

    responseで取得した文字列はxmlデータなのですが、

    xdoc = XDocument.Parse(response);

    とすると例外エラーが起きます。
    レスポンスデータを確認するとマルチバイト文字が文字化けを起こしており、それがxmlタグに作用してxml文法が崩れていたためパースに失敗していました。

    調べましたらC#は内部エンコーディングとしてUTF-16を使っており、これがWebからUTF-8のソースを取得した時に文字化けの原因となることに行き着きました。
    前述の通り内部エンコーディングがUTF-16なので、webClient.UploadString()の戻り値の時点で文字化けを起こしており、行き詰まっております。
    一般的には日本語の含まれるWeb上から得られるXMLデータはどのようにパースして利用するべきなのでしょうか。
親記事 /過去ログ164より / 関連記事表示
削除チェック/

■94983  Re[1]: Web上から読んだXMLがUTF-8の場合に文字化けします
□投稿者/ 魔界の仮面弁士 -(2020/06/09(Tue) 00:43:03)
    No94982 (c#初心者 さん) に返信
    > response = webClient.UploadString("https://example.com/api", "POST", postData);

    UploadString を呼ぶ前に、webClient.Encoding プロパティに何を設定していますか?

    何も設定していなければ、Encoding.Default 相当になるはずなので、
    おそらくは CodePage 932 (Shift_JIS) としてアップロード時にエンコード処理されていると思います。

    一方、ダウンロード時には、サーバー側が Content-Type ヘッダーで Charset が明示していれば
    それが優先的に利用されます。もしも Charset が返されなかった場合は、データ先頭に
    BOM があればそれが利用され、BOM も無かった場合には、webClient.Encoding にてデコード処理されます。



    > responseで取得した文字列はxmlデータなのですが、
    > xdoc = XDocument.Parse(response);
    > とすると例外エラーが起きます。

    それは、response の内容が既に破損していた…ということですよね?

    Parse は、バイナリではなく String を受け取るものなので、それ自体には
    encoding という概念はありません。(文字集合という概念ならあります)


    文字化けが問題になるようなら、UploadString ではなく UploadData を使うようにして、
    string と byte[] の相互変換を、明示的に行ってやるという選択肢もあります。
記事No.94982 のレス /過去ログ164より / 関連記事表示
削除チェック/

■94984  Re[2]: Web上から読んだXMLがUTF-8の場合に文字化けします
□投稿者/ c#初心者 -(2020/06/09(Tue) 02:01:06)
    > UploadString を呼ぶ前に、webClient.Encoding プロパティに何を設定していますか?

    こちらが未設定でした。

    webClient.Encoding = System.Text.Encoding.UTF8;

    上記のようにしたところ問題が解決しました。
    ありがとうございました。
記事No.94982 のレス / END /過去ログ164より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -