質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET Web API

ASP.NET Web APIはブラウザやモバイル機器のようなクライアント向けのHTTPサービスを構築するフレームワークです。Microsoft .NET Frameworkがベースになっており、RESTfulサービスを構築するには理想的です。

解決済

AzurePipelinesでデプロイしたWebアプリの文字化けについて

moontowel
moontowel

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET Web API

ASP.NET Web APIはブラウザやモバイル機器のようなクライアント向けのHTTPサービスを構築するフレームワークです。Microsoft .NET Frameworkがベースになっており、RESTfulサービスを構築するには理想的です。

1回答

0リアクション

0クリップ

228閲覧

投稿2022/10/04 08:19

編集2022/10/04 09:31

内容

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

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

SurferOnWww

2022/10/04 09:22

> 日本語が文字化けしてしまいます。 それじゃあ分かりません。どうなるのか例を書きましょう。
moontowel

2022/10/04 09:24

ご指摘ありがとうございます修正しますね。
SurferOnWww

2022/10/04 09:27

ASP.NET のタグも付けてください。ASP.NET Web API は普段見てないので返事があって見逃すことがあるという個人的事情からのお願いです。
moontowel

2022/10/04 09:32

諸々追加しております。 よろしくお願いします。
SurferOnWww

2022/10/04 10:04

対応いただきありがとうございました。 せっかく対応いただいたのにすみませんが、自分には原因は分からないです。なので、想像にすぎませんが・・・ Visual Studio で編集して保存する時ファイルの文字コードが Shift_JIS になるファイルがあって、Visual Studio でコンパイルする場合はそこはちゃんと認識してくれて問題ないのですが、UTF-8 を期待しているコンパイラでは文字化けするということがありました。 それと似たような話ではなかろうかと思いました。
moontowel

2022/10/04 10:18

devopsはutf-8ということは情報でありましたので、その辺りも怪しいですね。 ただAzureに直接デプロイすると文字化けしない現象も謎ですが・・・ vsでのutf-8の設定周りを調べてみます。 ご考察いただきありがとうございました。
SurferOnWww

2022/10/04 10:23

> ただAzureに直接デプロイすると文字化けしない現象も謎ですが・・・ それはコンパイルした後の話なので、開発環境で問題が出なければ、それをデプロイしたものも問題は出ないはずです。
moontowel

2022/10/05 00:01

>開発環境で問題が出なければ、それをデプロイしたものも問題は出ない そうなんですよね、なのでローカルの環境の問題ではなく、azure pipelinesのコンパイラなのかなーと思ってはいます。
SurferOnWww

2022/10/05 03:10

質問のコントローラのファイルの文字コードは調べてみましたか? Visual Studio 2022 のテンプレートで作った Web API のものなら Shift_JIS になっているのでは? あとで回答欄にその画像を貼っておきます。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

ASP.NET Web API

ASP.NET Web APIはブラウザやモバイル機器のようなクライアント向けのHTTPサービスを構築するフレームワークです。Microsoft .NET Frameworkがベースになっており、RESTfulサービスを構築するには理想的です。