内容
VS2022CommunityでASP.NET CoreWebAPI(.net6)を作成し、Azure WebAppsにデプロイしています。
中身はテンプレートで自動で作成されるControllerのままですが、日本語を返すように編集し、AzurePipelinesでci/cdを構築しデプロイしたところ、下記のように日本語が文字化けしてしまいます。
・ソース(Controller)
[ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "寒い", "Warm", "Balmy", "暑い" }; private readonly ILogger<WeatherForecastController> _logger; public WeatherForecastController(ILogger<WeatherForecastController> logger) { _logger = logger; } // devops test [HttpGet(Name = "GetWeatherForecast")] public IEnumerable<WeatherForecast> Get() { return Enumerable.Range(1, 3).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = Random.Shared.Next(-20, 55), Summary = Summaries[Random.Shared.Next(Summaries.Length)] }) .ToArray(); } }
・postmanでのリクエスト結果(2件目のsummaryで文字化け)
[ { "date": "2022-10-05T09:29:56.1794685+00:00", "temperatureC": 24, "temperatureF": 75, "summary": "Balmy" }, { "date": "2022-10-06T09:29:56.1797569+00:00", "temperatureC": 31, "temperatureF": 87, "summary": "Ц‚¢" // →文字化け }, { "date": "2022-10-07T09:29:56.1797597+00:00", "temperatureC": 41, "temperatureF": 105, "summary": "Balmy" } ]
試したこと
・VS2022Communityから直接Azureに発行したところ、文字化けは発生しなかった
直接デプロイすると文字化けしないので、AzurePipelinesのci/cdの辺り(特にpipelinesのコンパイル)かなと思うのですが、エンコーディングを指定するようなところも見当たりません。
下記はpipelinesのyamlファイルになります。どなたかご教授いただけますでしょうか?
trigger: branches: include: - develop variables: - name: solution value: '**/*.sln' - name: buildPlatform value: 'Any CPU' - name: buildConfiguration value: 'Release' stages: - stage: __default jobs: - job: Job pool: vmImage: 'windows-latest' steps: - task: NuGetToolInstaller@1 - task: NuGetCommand@2 inputs: restoreSolution: '$(solution)' - task: VSBuild@1 inputs: solution: '$(solution)' msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(Build.ArtifactStagingDirectory)"' platform: '$(buildPlatform)' configuration: '$(buildConfiguration)' - task: VSTest@2 inputs: platform: '$(buildPlatform)' configuration: '$(buildConfiguration)' - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'drop' publishLocation: 'Container'
補足情報(FW/ツールのバージョンなど)
IDE:VisualStudio2022Community
Webサーバー:AzureWebApps
回答1件