none
Lightswitchで発行を行うと、接続文字列内のCatalogに定義されているDB名が文字化けする RRS feed

  • 質問

  • こんにちは。

    Visual Studio 2015 のLightswitchでアプリケーションを作成しています。
    アプリケーションはスタンドアロンタイプです。

    発行を行うと、web.config に記述される接続文字列のうち、Catalog部分だけ文字化けします。

    以下のような化け方です。(*****は伏せてあるだけです)
    <add name="○○○Data" connectionString="data source=********;initial catalog=案件管理;persist security info=True;user id=********;password=********" />

    VS2013 では発生せず、VS2015で発生するようになりました。

    出力先が、ローカル(Win8.1)であるかサーバー(Win2008等)であるかにかかわらず、また
    接続がSQL認証であるか否かにかかわらず、すべての接続文字列のCATALOG定義が文字化けします。

    現在は、出力先にあるweb.configの当該部分を直接手直しすることで対応しています。
    (web.release.config に別途記述すると問題ないのかもしれませんが、まだ試してはいません。)

    どなたか、この現象について情報お持ちではないでしょうか?

    2017年2月3日 2:59

回答

  • Visual Studio Community 2015で実行してみましたが、
    web.configのinitial cataloglに文字化けが生じるという同様の現象が起きませんでした。

    文字化けの観点から調べた結果となりますが、下記の内容をお伝えいたします。
    おそらく、納品の時期と思われますので、試したくなっても試さないでください。

    推測の域をでませんが、以前の開発者および委託を受けた会社の人(たち)などが
    ファイルを保存する処理としてBOM(シグネチャ)なしで保存した状態が残っているかもしれません。

    調べてみたところweb.configはUnicodeのBOM(シグネチャ)付きで保存しないと
    期待した保存がされないことがあるようです。

    このことから、以前の保存をした状態を調べ、UnicodeのBOM(シグネチャ)付きで保存をして
    効果を得られるかどうか?というところになります。
    もちろん、うまくいく保障は全くなく、仮に正しく保存ができても意味があってUnicodeのBOMなしの
    状態を作った可能性が高いので、もとに戻さなくてはいけません。

    そして、繰り返しますが、納品時期に変なことはしないのが鉄則であるため、
    今後、このような事象が生じた場合に時間があるのであれば、お試しいただければと思います。

    下記は参考URLとなります。
    [URL]
    https://www.grapecity.com/tools/support/technical/knowledge_detail.asp?id=35820

    [引用]
    web.configのエンコーディングを「UTF-8 シグネチャ(BOM)付き」に変更することにより、本事象を回避することが可能です。
    以下に、Visual Studio 2010の場合の変更方法を示します。
    ------------------------
    1) Visual Studio 2010でweb.configを開きます。
    2) ツールバーのメニューから[ファイル]⇒[名前を付けてweb.configを保存]を選択します。
    3) 保存ダイアログ上の[上書き保存]ボタンの横の[▼]マークをクリックし、[エンコード付きで保存]を選択します。
    4) 上書きの確認ダイアログが表示されるので、[はい]を選択します。
    5) エンコードに[Unicode (UTF-8 シグネチャ付き) - コードページ 65001]を選択し、[OK]をクリックします。
    6) ツールバーのメニューから[ツール]⇒[ActiveReports 7.0J ファイルコンバータ]を選択し、レポートファイルの変換を行います。
    7) 変換完了後にエンコードを戻す必要がある場合は、 1)~5)の手順を繰り返し、web.configのエンコードを[Unicode (UTF-8 シグネチャなし) - コードページ 65001]に変更します。
    ------------------------

    また、恐れ入りますが、解決しない状態で、そのまま残ることになることをお許しください。

    誰かが教えてくれるのを待ってみたいと思っています。
    2017年7月4日 0:23