タグ付けされた質問 「character-encoding」

文字エンコードとは、文字が一連のバイトとして表される方法を指します。Webの文字エンコーディングは、Encoding Standardで定義されています。

6
ASCIIコードは7ビットですか、8ビットですか?
先生から、ASCIIは8ビットの文字コード体系だと言われました。ただし、0〜127コードに対してのみ定義されているため、7ビットに適合できます。では、ASCIIビットは実際には7ビットコードであると主張することはできませんか? そして、ASCIIが8ビットコードであると言っているとき、私たちは何を言っているのですか?

7
MacRoman、CP1252、Latin1、UTF-8、ASCII間のエンコーディングを確実に推測する方法
職場では、エンコーディング関連の接続、災害、または大災害がなければ、1週間も経たないようです。この問題は通常、エンコーディングを指定せずに「テキスト」ファイルを確実に処理できると考えるプログラマーから生じます。しかし、それはできません。 したがって、今後、ファイルの末尾が*.txtまたはで終わる名前をファイルに付けることを禁止することが決定されました*.text。その考えは、これらの拡張機能により、カジュアルなプログラマーをエンコードに関する鈍い自己満足に導き、これが不適切な処理につながるということです。少なくともあなたが知っているので、それは全く拡張を持たない方がほぼ良いでしょうあなたは、あなたが持っているかわからないということ。 しかし、私たちはそれほど遠くに行くことを望んでいません。代わりに、エンコーディングで終わるファイル名を使用することが期待されます。たとえばテキストファイルの場合、これらは次のようREADME.asciiになります。README.latin1、README.utf8など、 特定の拡張子が必要なファイルの場合、PerlやPythonなど、ファイル自体の内部でエンコーディングを指定できる場合は、それを行う必要があります。そのような機能がファイルの内部に存在しないJavaソースのようなファイルの場合、次のように、エンコーディングを拡張の前に置きます。SomeClass-utf8.java。 出力の場合、UTF-8は 強く推奨されます。 しかし、入力のために、コードベースの何千ものファイルをどのように処理するかを理解する必要があります。 *.txt。すべての名前を変更して、新しい標準に合わせたいと思います。しかし、それらすべてを目にすることはできません。したがって、実際に機能するライブラリまたはプログラムが必要です。 これらは、ASCII、ISO-8859-1、UTF-8、Microsoft CP1252、またはApple MacRomanでさまざまです。何かがASCIIであるかどうかを判断できることはわかっていますが、何かがおそらくUTF-8であるかどうかを知ることには大きな変化がありますが、8ビットのエンコーディングに困惑しています。ほとんどのデスクトップがMacであるUnix混合環境(Solaris、Linux、Darwin)で実行しているため、迷惑なMacRomanファイルがかなりあります。そして、これらは特に問題です。 しばらくの間、私はプログラムでどれを決定する方法を探していました ASCII ISO-8859-1 CP1252 マクロマン UTF-8 ファイルがあり、3つの異なる8ビットエンコーディングを確実に区別できるプログラムまたはライブラリが見つかりません。おそらく、1,000以上のMacRomanファイルだけが存在するため、私たちが使用する文字セット検出器は、それらを探知できなければなりません。私が見たものは何もトリックを管理できません。ICU文字セット検出器ライブラリに大きな期待がありましたに MacRomanを処理できません。また、PerlとPythonの両方で同じ種類のことを行うためのモジュールも調べましたが、何度も繰り返しますが、MacRomanの検出はサポートされていません。 したがって、私が探しているのは、ファイルが5つのエンコーディングのどれにあるか、できればそれより多いかを確実に判断する既存のライブラリまたはプログラムです。特に、私が引用した3つの3ビットエンコーディング、特にMacRomanを区別する必要があります。ファイルは99%以上の英語のテキストです。他の言語にはいくつかありますが、多くはありません。 ライブラリコードの場合、言語設定は、Perl、C、Java、またはPythonの順で、それが単なるプログラムである場合、完全なソースで提供され、Unixで実行され、完全に邪魔にならない限り、その言語がどの言語であるかは特に問題になりません。 他の誰かがランダムにエンコードされた膨大な数のレガシーテキストファイルのこの問題を抱えていましたか?もしそうなら、それをどのように解決しようとしましたか、そしてどれほど成功しましたか?これは私の質問の最も重要な側面ですが、プログラマーにファイルの実際のエンコーディングを使用してファイルに名前を付ける(または名前を変更する)ように勧めることで、将来の問題を回避するのに役立つかどうかにも興味があります。制度的にこれを施行しようとした人はいますか?その場合、それは成功したかどうか、そしてなぜですか? そして、はい、問題の性質上、明確な答えを保証できない理由を完全に理解しています。これは特に、続行するのに十分なデータがない小さなファイルの場合に当てはまります。幸い、私たちのファイルはめったに小さくありません。ランダムREADMEファイルを除いて、ほとんどのファイルは50kから250kのサイズ範囲にあり、多くはより大きなサイズです。サイズが数Kを超えるものはすべて、英語であることが保証されています。 問題ドメインは生物医学のテキストマイニングであるため、PubMedCentralのすべてのオープンアクセスリポジトリのように、大規模で非常に大規模なコーパスを扱う場合があります。かなり巨大なファイルは5.7ギガバイトのBioThesaurus 6.0です。このファイルはほとんどすべてUTF-8であるため、特に煩わしいものです。しかし、一部の麻痺した頭蓋骨は、8ビットエンコーディングであるMicrosoft CP1252のいくつかの行に行き詰まりました。あなたがそれをトリップするまでにはかなり時間がかかります。:(



3
「 」「 」の置き換えですか?
私のASP.NETアプリケーションでは、スペースバーを入力して、2つのテキストボックスの間にいくつかの空白を追加しようとしました。同等のHTMLソースはの 代わりでした 。だから私はチェックしたかった:これは空白の新しい置換ですか?はいの場合、なぜ変更されたのですか?

2
文字にはビットまたはバイトがいくつありますか?[閉まっている]
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 9年前休業。 「文字」ごとにビットまたはバイトはいくつありますか?

9
PythonでのUTF8 CSVファイルの読み取り
Pythonでアクセント付き文字を含むCSVファイルを読み込もうとしています(フランス語および/またはスペイン語の文字のみ)。csvreaderのPython 2.5ドキュメント(http://docs.python.org/library/csv.html)に基づいて、csvreaderはASCIIのみをサポートしているため、CSVファイルを読み取るために次のコードを考え出しました。 def unicode_csv_reader(unicode_csv_data, dialect=csv.excel, **kwargs): # csv.py doesn't do Unicode; encode temporarily as UTF-8: csv_reader = csv.reader(utf_8_encoder(unicode_csv_data), dialect=dialect, **kwargs) for row in csv_reader: # decode UTF-8 back to Unicode, cell by cell: yield [unicode(cell, 'utf-8') for cell in row] def utf_8_encoder(unicode_csv_data): for line in unicode_csv_data: yield line.encode('utf-8') filename = …

3
JsonParseException:引用符で囲まれていない無効な文字((CTRL-CHAR、コード10)
org.apache.httpcomponentsJSON形式のデータをAPIにポストするRest API を使用するために使用しようとしています。 私はこの例外を受け取ります: 原因:com.fasterxml.jackson.core.JsonParseException:引用符で囲まれていない不正な文字((CTRL-CHAR、コード10)):文字列に含めるには、バックスラッシュを使用してエスケープする必要があります。 その理由はctrl-char、JSON文字列に含まれているためです。 これまたは他の解決策を置き換える方法はありますか?

10
「java.nio.charset.MalformedInputException:入力長= 1」を回避するためのオールインクルーシブの文字セット?
私はJavaでディレクトリのテキストベースのファイルを読み取る単純なワードカウントプログラムを作成しています。 ただし、エラーが発生し続けます。 java.nio.charset.MalformedInputException: Input length = 1 このコード行から: BufferedReader reader = Files.newBufferedReader(file,Charset.forName("UTF-8")); Charsetテキストファイルに一部の文字が含まれていないaを使用したため、おそらく他の言語の文字が含まれているので、おそらくこれがわかるでしょう。しかし、私はそれらのキャラクターを含めたいです。 私は後でJavaDocsでこれCharsetがオプションであり、ファイルのより効率的な読み取りにのみ使用されることを学びました。そのため、コードを次のように変更しました。 BufferedReader reader = Files.newBufferedReader(file); しかし、一部のファイルは依然としてをスローしMalformedInputExceptionます。理由はわかりません。 Charsetさまざまな種類の文字を含むテキストファイルを読み取ることができる包括的なものがあるかどうか疑問に思っていましたか? ありがとう。

6
Javaでデフォルトの文字セット/エンコーディングを見つける方法は?
明白な答えは使用することですCharset.defaultCharset()が、最近これが正しい答えではない可能性があることがわかりました。結果は、いくつかの場面でjava.ioクラスが使用する実際のデフォルトの文字セットとは異なると言われました。Javaは2セットのデフォルト文字セットを保持しているようです。誰かがこの問題について何か洞察を持っていますか? フェイルケースを1つ再現することができました。これは一種のユーザーエラーですが、他のすべての問題の根本的な原因が明らかになる可能性があります。これがコードです public class CharSetTest { public static void main(String[] args) { System.out.println("Default Charset=" + Charset.defaultCharset()); System.setProperty("file.encoding", "Latin-1"); System.out.println("file.encoding=" + System.getProperty("file.encoding")); System.out.println("Default Charset=" + Charset.defaultCharset()); System.out.println("Default Charset in Use=" + getDefaultCharSet()); } private static String getDefaultCharSet() { OutputStreamWriter writer = new OutputStreamWriter(new ByteArrayOutputStream()); String enc = writer.getEncoding(); return enc; } …

5
Python:ISO-8859-1 / latin1からUTF-8への変換
電子メールモジュールを使用して、Quoted-printableからISO-8859-1にデコードされたこの文字列があります。これにより、「Äpple」(スウェーデン語でApple)に対応する「\ xC4pple」のような文字列が得られます。ただし、これらの文字列をUTF-8に変換することはできません。 >>> apple = "\xC4pple" >>> apple '\xc4pple' >>> apple.encode("UTF-8") Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128) 私は何をすべきか?

13
VisualStudioプロジェクトのすべてのファイルをUTF-8として保存します
Visual Studio2008プロジェクトのすべてのファイルを特定の文字エンコードで保存できるかどうか疑問に思います。混合エンコーディングを使用したソリューションがあり、それらをすべて同じにしたい(署名付きのUTF-8)。 単一のファイルを保存する方法を知っていますが、プロジェクト内のすべてのファイルはどうですか?

7
バイト配列を文字列に変換する(Java)
Google AppEngineでウェブアプリケーションを書いています。これにより、基本的.htmlに、blobstoreにファイルとして保存されるhtmlコードを編集できます。 私はfetchDataを使用byte[]して、ファイル内のすべての文字のを返します。ユーザーがHTMLコードを編集できるように、HTMLに印刷しようとしています。すべてがうまくいきます! これが私の唯一の問題です: 文字列に戻すときに、バイト配列にいくつかの問題があります。スマートな引用といくつかのキャラクターがファンキーに見えます。(?や日本語の記号など)具体的には、問題の原因となっているのは負の値を持つ数バイトです。 スマート引用符は、として戻って来ている-108と-109バイト配列に。これはなぜですか?また、負のバイトをデコードして正しい文字エンコードを表示するにはどうすればよいですか?

4
文字エンコードの問題をテストするための「Loremipsums」ファイルのセットはありますか?
レイアウトについては、有名な「Lorem ipsum」テキストを使用して、どのように表示されるかをテストします。 私が探しているのは、テキストファイルを読み取るときに文字エンコードを処理するいくつかのメソッドをテストするためにJUnitテストで使用できる、いくつかの異なるエンコードでエンコードされたテキストを含むファイルのセットです。 例: 持つISO 8859-1エンコードされたテスト・ファイルおよびWindows-1252エンコードされたテストファイルを。Windowsの-1252は、領域80の違いトリガする必要があり16 9F - 16。つまり、ISO 8859-1と区別するために、この領域の文字が少なくとも1つ含まれている必要があります。 おそらく、テストファイルの最良のセットは、各エンコーディングのテストファイルにすべての文字が一度含まれているものです。しかし、多分私はsthに気づいていません-私たちは皆、このエンコーディングのものが好きですよね?:-) 文字エンコードの問題に関するそのようなテストファイルのセットはありますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.