ReadJEnc���g���ĕ����G���R�[�f�B���O�𐄒肷��ɂ́H�mC#�AVB�n�F.NET TIPS

Web�y�[�W�̎擾���ɁAMIT���C�Z���X�����̃h�l�[�V�����E�F�A�uReadJEnc�v���g�p���āA�����G���R�[�f�B���O�𐄒肷����@���������B

» 2015�N01��20�� 12��35�� ���J
[�R�{�N�F�CBluewaterSoft�^Microsoft MVP for Windows Platform Development]
.NET TIPS
Insider.NET

�@

u.NET TIPSṽCfbNX

�A�ږڎ�

�ΏہF.NET 2.0�ȍ~�iWeb�y�[�W���擾���镔����.NET 4.5�ȍ~�j


�@�C�ӂ�Web�y�[�W�̓��e���擾����ɂ́A����ł͕����R�[�h�̐��肪�K�v�ɂȂ�B�u.NET TIPS�FHttpClient�N���X�ŃV�t�gJIS��Web�y�[�W���擾����ɂ́H�mC#�AVB�n�v�ł́AW3C�̐��������ɏ����Ď������Ă݂��B����ł������������Ă��܂�Web�T�C�g�ł́A�ǂ�������悢���낤���H ����ɂ́AWeb�y�[�W�̓��e��P��byte�̕��тƂ��Ď擾���A����byte��̃p�^�[�����當���G���R�[�f�B���O�𐄒肷�邱�ƂɂȂ邾�낤�B�{�e�ł́A�����G���R�[�f�B���O�𐄒肵�ĕ�����ɕϊ����Ă����I�[�v���\�[�X�̃��C�u�����uReadJEnc�v�̎g�������������B

�����G���R�[�f�B���O�𐄒肷�郉�C�u����

�@�o�C�g��̃p�^�[�����當���G���R�[�f�B���O���m���ɔ���ł���A���S���Y���͑��݂��Ȃ��B�����ŁA�����R�[�h�́u�������ʁv�Ƃ悭�����邪�A�{�e�ł́u����v�Ƃ������t���g�����Ƃɂ���B���̂悤�ȕ����G���R�[�f�B���O�𐄒肷�郉�C�u�����͂����‚����J����Ă���B�Ⴆ�Ύ��̂悤�Ȃ��̂�����B

�@������Internet Explorer��Firefox�Ŏg���Ă�����̂Ő��萸�x�͍������ł͂��邪�AC#�^VB���痘�p����ɂ̓n�[�h���������B��y��.NET Framework���璼�ڎQ�Ƃł���`���̃��C�u�����͂Ȃ����̂��B���̈�‚ɁAhnx8���ɂ����2014�N�Ɍ��J���ꂽ�uReadJEnc�v������BReadJEnc��MIT���C�Z���X�������h�l�[�V�����E�F�A�ƂȂ��Ă���B�{�e�ł́AWeb�y�[�W��byte�z��Ƃ��Ď擾���A�����ReadJEnc�ŕ�����ɕϊ�������@���Љ��B

ReadJEnc�𗘗p���鏀��

�@�_�E�����[�h�y�[�W������肵��zip�t�@�C���̒��g��K���ȃt�H���_�[�ɓW�J���Ă����B���̒��́uHnx8.ReadJEnc.dll�v�t�@�C�����v���W�F�N�g�̎Q�Ɛݒ�ɒlj�����΁A�����͊������i���̉摜�j�B

vWFNgReadJEncւ̎QƂljiVisual Studio 2012j �v���W�F�N�g��ReadJEnc�ւ̎Q�Ƃ�lj��iVisual Studio 2012�j
�����Visual Studio Express 2012 for Windows Desktop�̗�ł���B
�\�����[�V�����G�N�X�v���[���[�ŎQ�Ƃ�lj��������v���W�F�N�g�̃v���W�F�N�g���i�܂��́A���̃v���W�F�N�g���̃t�@�C���^�t�H���_�[�j��I�����Ă����A���j���[�o�[����m�v���W�F�N�g�n�|�m�Q�Ƃ̒lj��n ��I�ԁi�i1�j�j�B
����Ɓm�Q�ƃ}�l�[�W���[�n�_�C�A���O���o�Ă���̂ŁA�����Łm�u���E�Y�n�i�Ԙg���j��I�сiVisual Studio�̃o�[�W�����ɂ���Ắm�u���E�Y�n�ł͂Ȃ��m�Q�Ɓn�j�A�E���́m�Q�Ɓn�{�^���i�Ԙg���j���N���b�N����i�i2�j�j�B�Ȃ��AVisual Studio�̈ȑO�̃o�[�W�����ł́A�_�C�A���O�̃^�C�g���́m�Q�Ƃ̒lj��n�ƂȂ��Ă���A�m�Q�Ɓn�^�u��I��Ńt�@�C����I������i���̏ꍇ�A�����i3�j�͂Ȃ��j�B
�o�Ă����t�@�C���I���_�C�A���O�ŁuHnx8.ReadJEnc.dll�v�t�@�C���i�Ԙg���j��I�сA�m�lj��n�{�^���i�Ԙg���j���N���b�N����i�i3�j�j�B
�m�Q�ƃ}�l�[�W���[�n�_�C�A���O�ɖ߂�̂ŁA�E���́mOK�n�{�^�����N���b�N���Ċ������i�i4�j�j�B

�@�Ȃ��A�uHnx8.ReadJEnc.dll�v�t�@�C���Ɠ����t�H���_�[�ɁuHnx8.ReadJEnc.xml�v�t�@�C��������΁izip�t�@�C�������̂܂ܓW�J�����瑶�݂���͂����j�AVisual Studio��IntelliSense���@�\����i���̉摜�j�B

ReadJEncւ̎QƂljIntelliSense@\iVisual Studio 2012j ReadJEnc�ւ̎Q�Ƃ�lj��������IntelliSense���@�\����iVisual Studio 2012�j
�����Visual Studio Express 2012 for Windows Desktop�̗�ł���B
�Q�Ɛݒ�Œlj������uHnx8.ReadJEnc.dll�v�t�@�C���Ɠ����t�H���_�[�ɁuHnx8.ReadJEnc.xml�v�t�@�C��������΁A���̂悤��IntelliSense���@�\����B

Web�y�[�W��byte�z��Ƃ��Ď擾����ɂ́H

�@HttpClient�N���X�iSystem.Net.Http���O��ԁj�𗘗p����Ȃ�AGetByteArrayAsync���\�b�h���g���΂悢�B

�@�u.NET TIPS�FHttpClient�N���X��Web�y�[�W���擾����ɂ́H�mC#�AVB�n�v�ō쐬����GetWebPageAsync���\�b�h���x�[�X�ɂ��ď���������ƁA���̃R�[�h�̂悤�ɂȂ�B

static async Task<byte[]> GetWebPageAsync(Uri uri)
// ���\�b�h���Ԃ��^��Task<string>����Task<byte[]>�ɕύX����
{
  // HttpClient�I�u�W�F�N�g������Ďg�p����
  using (var client = new HttpClient())
  {
    �c�c�ȗ��c�c
    try
    {
      //// Web�y�[�W�̓��e�𕶎���Ƃ��Ď擾����
      //return await client.GetStringAsync(uri);

      // Web�y�[�W�̓��e��byte�z��Ƃ��Ď擾����
      return await client.GetByteArrayAsync(uri);
    }
    catch (HttpRequestException e)
    {
      �c�c�ȗ��c�c
    }
    return null;
  }
}

Async Function GetWebPageAsync(uri As Uri) As Task(Of Byte())
' ���\�b�h���Ԃ��^��Task Task(Of String)����Task(Of Byte())�ɕύX����

  ' HttpClient�I�u�W�F�N�g������Ďg�p����
  Using client = New HttpClient()
    �c�c�ȗ��c�c
    Try
      '' Web�y�[�W�̓��e�𕶎���Ƃ��Ď擾����
      'Return Await client. GetStringAsync (uri)

      ' Web�y�[�W�̓��e��byte�z��Ƃ��Ď擾����
      Return Await client.GetByteArrayAsync(uri)
    Catch e As HttpRequestException
      �c�c�ȗ��c�c
    End Try
    Return Nothing
  End Using
End Function

Web�y�[�W�̓��e��Byte�z��Ƃ��Ď擾���郁�\�b�h�̗�i��FC#�A���FVB�j
�u.NET TIPS�FHttpClient�N���X��Web�y�[�W���擾����ɂ́H�mC#�AVB�n�v�ō쐬����GetWebPageAsync���\�b�h���x�[�X�ɂ��āA���\�b�h���Ԃ��^��ύX���AHttpClient�N���X��GetStringAsync���\�b�h���Ăяo���Ă��镔����GetByteArrayAsync���\�b�h�ɏ����������B�ȗ����������͓����ł���B
�Ȃ��AHttpClient�N���X��.NET 4.5�ŐV�݂��ꂽ���̂��B����ȑO�̃o�[�W�����ł�WebClient�N���X�iSystem.Net���O��ԁj��DownloadData���\�b�h���g���Ȃǂ��Ăق����i�u.NET TIPS�FWebClient�N���X��Web�y�[�W���擾����ɂ́H�v�Q�Ɓj�B

�擾����byte�z���ReadJEnc�ŕ�����ɕϊ�����ɂ́H

�@��̃��\�b�h�Ŏ擾�ł���byte�z����AReadJEnc�N���X�̃C���X�^���X��GetEncoding���\�b�h�ɓn���΂悢�BReadJEnc�N���X�������G���R�[�f�B���O�𐄒肵�ĕ�����ɕϊ��������ʂ�������B�܂��A���̃��\�b�h�̕Ԓl�́A����ł��������G���R�[�f�B���O�ƂȂ��Ă���i���̃R�[�h�j�B

�c�c�ȗ��c�c
static void Main(string[] args)
{
  �c�c�ȗ��c�c

  // �擾������Web�y�[�W��URI
  Uri webUri = new Uri(�c�c�ȗ��c�c); 

  // GetWebPageAsync���\�b�h���Ăяo��
  //Task<string> webTask = GetWebPageAsync(webUri);
  Task<byte[]> webTask = GetWebPageAsync(webUri);
  webTask.Wait(); // Main���\�b�h�ł�await�ł��Ȃ��̂ŁA��������������܂őҋ@����
  //string result = webTask.Result;  // ���ʂ��擾
  byte[] byteData = webTask.Result; // ���ʂ��擾

 string result = null;  // �f�R�[�h���ʂ��i�[�����string�ϐ�
  if (byteData != null)
  {
    // byte�z��Ƃ��Ď擾�ł����̂ŁAReadJEnc��JP�C���X�^���X���g���ăf�R�[�h����
    Hnx8.ReadJEnc.CharCode charCode
      = Hnx8.ReadJEnc.ReadJEnc.JP.GetEncoding(byteData, byteData.Length, out result);
    Console.WriteLine("�����G���R�[�f�B���O���茋��: {0}", charCode.ToString());
  }

  �c�c�ȗ��i�o�ߎ��ԂƓ���ꂽ�������\���j�c�c
}

Sub Main()
  �c�c�ȗ��c�c

  ' �擾������Web�y�[�W��URI
  Dim webUri As Uri = New Uri(�c�c�ȗ��c�c)

  ' GetWebPageAsync���\�b�h���Ăяo��
  'Dim webTask As Task(Of String) = GetWebPageAsync(webUri)
  Dim webTask As Task(Of Byte()) = GetWebPageAsync(webUri)
  webTask.Wait() ' Main���\�b�h�ł�await�ł��Ȃ��̂ŁA��������������܂őҋ@����
  'Dim result As String = webTask.Result ' ���ʂ��擾
  Dim byteData As Byte() = webTask.Result ' ���ʂ��擾

  Dim result As String = Nothing  ' �f�R�[�h���ʂ��i�[�����string�ϐ�
  If (byteData IsNot Nothing) Then
    ' byte�z��Ƃ��Ď擾�ł����̂ŁAReadJEnc��JP�C���X�^���X���g���ăf�R�[�h����
    Dim charCode As Hnx8.ReadJEnc.CharCode _
        = Hnx8.ReadJEnc.ReadJEnc.JP.GetEncoding(byteData, byteData.Length, result)
    Console.WriteLine("�����G���R�[�f�B���O���茋��: {0}", charCode.ToString())
  End If

  �c�c�ȗ��i�o�ߎ��ԂƓ���ꂽ�������\���j�c�c
End Sub

byte�z��Ƃ��Ď擾����Web�y�[�W�̓��e��ReadJEnc�N���X�ŕ�����ɕϊ�����R�[�h��i��FC#�A���FVB�j
�u.NET TIPS�FHttpClient�N���X��Web�y�[�W���擾����ɂ́H�mC#�AVB�n�v�ō쐬����Main���\�b�h�ɑ΂��āA�����̕�����ύX�^�lj������B
ReadJEnc�N���X�̃R���X�g���N�^�[�̓A�N�Z�X�ł��Ȃ��悤�ɂȂ��Ă���B�C���X�^���X�𓾂�ɂ́AReadJEnc�N���X�̐ÓI�t�B�[���h�uJP�v�i���{��p�j�^�uCN�v�i�ȑ̎�������p�j�Ȃǂ��g���B
ReadJEnc�N���X��GetEncoding���\�b�h���Ăяo������́A���[�J���ϐ��uresult�v�ɃG���R�[�h���ꂽ�����񂪓����Ă���B�܂��AGetEncoding���\�b�h�̕Ԓl���i�[�������[�J���ϐ��ucharCode�v�ɂ́AReadJEnc�N���X�����肵�������G���R�[�f�B���O�������Ă���B�Ȃ��A�����G���R�[�f�B���O������ł��Ȃ������Ƃ��ɂ́A���[�J���ϐ��uresult�v�^�ucharCode�v�͋���null�iC#�j�^Nothing�iVB�j�ɂȂ�i���̃T���v���R�[�h�ł͏ȗ����Ă��邪�A�G���[�������s���ׂ��ł���j�B

�@���̃T���v���R�[�h�ŁAWeb�y�[�W��URL�i���[�J���ϐ��uwebUri�v�����Ƃ��ɗ^���镶����A�R�[�h���ł͏ȗ����Ă���j��ς��Ď��������ʂ��ȉ��Ɏ����B

�@���{��̃T�C�g�A���邢�͑�����ł����Ă�UTF-8�̃T�C�g�ł́A������ƃf�R�[�h�ł����i���̉摜�j�B

{̃TCgAUTF-8̑̃TCgł͐ł
{̃TCgAUTF-8̑̃TCgł͐ł
{̃TCgAUTF-8̑̃TCgł͐ł
{̃TCgAUTF-8̑̃TCgł͐ł
{̃TCgAUTF-8̑̃TCgł͐ł
{̃TCgAUTF-8̑̃TCgł͐ł ���{��̃T�C�g�AUTF-8�̑�����̃T�C�g�ł͐���������ł���
�ォ�珇�ɁA�V�t�gJIS�^JIS�^EUC-JP�^UTF-8�i�p��j�^UTF-8�i�����ȑ̎��j�^UTF-8�i���V�A��j�B
�Ȃ��A������̈ꕔ�������������Ă���悤�Ɍ����邪�A����̓G���R�[�h�Ɏ��s���Ă���킯�ł͂Ȃ��A���s�‹��̃t�H���g�i��MS�S�V�b�N�j�ɊY������O���t�����݂��Ȃ����߂ł���B

�@ReadJEnc�N���X�́uJP�v�C���X�^���X�ł́AUTF-8�ł͂Ȃ�������̃T�C�g�͐���������ł��Ȃ��i���̉摜�j�B����́A���ꂲ�ƂɃC���X�^���X��������Ă��邱�Ƃ���z���ł��錋�ʂł���i�摜�ɂ��ڂ������A�uCN�v�C���X�^���X���g���Β�����ȑ̎��̃G���R�[�f�B���O�𐄒�ł���j�B

uJPvCX^Xł́AUTF-8ł͂Ȃ̃TCg͐łȂ
uJPvCX^Xł́AUTF-8ł͂Ȃ̃TCg͐łȂ �uJP�v�C���X�^���X�ł́AUTF-8�ł͂Ȃ�������̃T�C�g�͐���������ł��Ȃ�
��́uJP�v�C���X�^���X�ŁA���́uCN�v�C���X�^���X�Ńf�R�[�h�����B�ǂ�����AWeb�y�[�W�̕����G���R�[�f�B���O��GB2312�i�����ȑ̎��j�ł���B
���{��p�́uJP�v�C���X�^���X�́A������̃T�C�g�ł̓G���R�[�f�B���O�𐳂�������ł��Ȃ��B
������ȑ̎��p�́uCN�v�C���X�^���X���g���΁A�ȑ̎��̃G���R�[�f�B���O�𐄒�ł���i���̑���ɓ��{��̃T�C�g������ł��Ȃ��j�BReadJEnc�N���X�ɂ͂��̑��ɁA������ɑ̎��p�uTW�v�C���X�^���X�^�؍���p�uKR�v�C���X�^���X�^�����p�uANSI�v�C���X�^���X���p�ӂ���Ă���B
�Ȃ��A���̉摜�Œ�����̈ꕔ�������������Ă���悤�Ɍ����邪�A����̓G���R�[�h�Ɏ��s���Ă���킯�ł͂Ȃ��A���s�‹��̃t�H���g�i��MS�S�V�b�N�j�ɊY������O���t�����݂��Ȃ����߂ł���B

�@��q�������ӓ_�����邱�Ƃ��킫�܂��Ďg���΁AReadJEnc�N���X�͂ƂĂ��֗��ȃ��C�u�����ł���B���̑��AReadJEnc�N���X�̏ڍׂ���҂̃u���O�L���������������������B�܂��A�_�E�����[�h�ł���p�b�P�[�W�ɂ�C#�̃\�[�X�R�[�h����������Ă���B

���p�”\�o�[�W�����F.NET Framework 2.0�ȍ~
�J�e�S���F�N���X���C�u�����@�����ΏہF������@�����ΏہF�l�b�g���[�N
�g�p���C�u�����FHttpClient�N���X�iSystem.Net.Http���O��ԁj
�g�p���C�u�����FReadJEnc�N���X�iHnx8.ReadJEnc���O��ԁj
�֘ATIPS�FHttpClient�N���X��Web�y�[�W���擾����ɂ́H�mC#�AVB�n
�֘ATIPS�FHttpClient�N���X�ŃV�t�gJIS��Web�y�[�W���擾����ɂ́H�mC#�AVB�n
�֘ATIPS�F
WebClient�N���X��Web�y�[�W���擾����ɂ́H


u.NET TIPSṽCfbNX

�u.NET TIPS�v

Copyright© Digital Advantage Corp. All Rights Reserved.

'; if( !this.isSubscription ) { this.insertTarget = document.querySelector('#cmsBody .subscription') || document.querySelector('#cmsBody .inner'); } }; BodyAdIMSWithCCE.prototype = Object.create(BodyAdContent.prototype); BodyAdIMSWithCCE.prototype.activate = function () { refreshGam('InArtSpecialLink'); } // global reference window.itm = itm; //entry point BodyAdEventBase.polyfill(); const bodyAdManager = BodyAdManager.getInstance(); bodyAdManager.addEventListener(BodyAdManager.EVENTS.READY, function (ev) { bodyAdManager.loadAdvertise(); }); bodyAdManager.init(); })();
�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

4AI by IT - AIAAA
Microsoft  WindowsőO2025
AI for GWjAO
[R[h^m[R[h Zg by IT - ITGWjArWlX̒SŊ􂷂gD
Cloud Native Central by IT - XP[uȔ\͂gD
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B