0

私たちのプログラミングチームは現在、Win1252エンコーディングを使用するデータベースを使用していますが、データベースは不良データをネイティブに除外することもあまり得意ではありません。

多くの場合、プログラムのエンドユーザーは、MSWordから情報をコピーして貼り付け、データベースに挿入します。これにより、データベースにあらゆる種類のファンキーな文字が表示され、解釈できない場合があります。

現在、MSWordのネイティブエンコーディングでエンコードされた文字列を解析し、同様のASCII、UTF8、またはWin1252形式に変換するライブラリはありますか?

同様に、「典型的な」のように見える奇妙な二重引用符を翻訳することを意味します。

質問が曖昧な場合はお知らせください。必要に応じて更新します。

4

2 に答える 2

1

ここにあるJeffAtwoodのソリューションをチェックしてください:http://www.codinghorror.com/blog/2006/01/cleaning-words-nasty-html.html

正規表現を使用します。FWIW、そこにある多くのRTEは、コピーして貼り付けたコンテンツをクリーニングするときに同様の方法を使用します。

于 2012-08-23T03:21:34.977 に答える
0

わかりました。MSWordはWin1252エンコーディングを使用しているようです。したがって、コピーして貼り付けたテキストを保存するのにそれほど面倒なことはないはずです。

ユーザーが異なるエンコードのソースからコピーして貼り付ける可能性は常にあるため、問題は依然として存在します。インターネットで見つけた最良の答えは、エンコーディングを作成し(Encoding ANSI = Encoding.GetEncoding(1252))、次に「フォールバック」を設定することです-エンコーディングが認識されない文字の置換文字(ANSI.EncoderFallback = new EncoderReplacementFallback (string.Empty);)。

Stack Overflowからの別の質問から私が見つけた有用な引用は、「Windows-1252コードページがISO-8859-1コードページと異なる0x80-0x9Fの範囲」でした。これは、MSWord変換の問題の大部分の原因であると思われます。

1252でエンコードされたデータベースを使用していない人がこの質問に来た場合(1252はひどいのでそうだと思います)。MSWordの主な問題は、通常の引用符を自動的に変更する「スマート引用符」です。この問題には多くの解決策があり、「スマートクォート」をグーグルで検索するだけで簡単に見つけることができます。

この質問/回答が、マイクロソフトが私たちに投げかけるような退屈な問題を抱えている人々に役立つことを願っています。

于 2012-08-23T03:58:35.830 に答える