0

改行で区切られた、MacRoman でコーディングされたテキストのリストがあります。どういうわけか、2 番目のリストを MacRoman に保存できなかったので、Unicode UTF-16 を使用してドイツ語の「ö」、「ä」などを取得する必要がありました。ListA は期待どおりにいっぱいになりますが、listB はもう壊れず、1 つの文字列になってしまいます。これはもう壊れない/方法がわかりません。誰かが私を助けることができますか?

set ListA to (read file myFile1 using delimiter linefeed) as list    
display dialog "" & item 1 of ListA    
--> "Name A" 

set ListB to (read file myFile2 using delimiter linefeed as Unicode text) as list    
display dialog "" & item 1 of ListB    
--> "Name A    
Name B    
Name C    
Name D"
4

2 に答える 2

1

テキスト ファイルの行を区切る文字には、さまざまな種類があります。必ずしも改行ではありません。それらを処理する最も簡単な方法は、ファイルを読み取るときに区切り文字を使用するのではなく、applescript コマンド「paragraphs」を使用することです。Paragraphs は、使用されている文字を把握して処理するのが得意です。常にうまくいくとは限りませんが、問題を深く掘り下げる前に試してみる価値はあります。そのため、このようにファイルを読み取ってみてください...

set ListB to paragraphs of (read file myFile2 as Unicode text)

それがうまくいかない場合は、キャラクターが何であるかを理解しようとする必要があります. これらの場合に私が行うことは、ファイルを物理的に開き、マウスで改行文字を選択してコピーすることです。次に、AppleScript Editor に戻り、このコマンドに貼り付けます。「a」の文字があるところに貼り付けます。キャラクターIDを教えてくれます。

id of "a"

次に、このような区切り記号を使用してファイルを読み取ることができます。明らかに、97 の代わりに上記のコマンドの ID 番号を使用します...

set ListB to read file myFile2 using delimiter (character id 97) as Unicode text
于 2012-11-22T23:54:27.703 に答える
0

ファイルが LF 行末を使用していることは確かですか? これは私のために働く:

set f to POSIX file "/tmp/1"
set b to open for access f with write permission
set eof b to 0
write "あ" & linefeed & "い" to b as Unicode text -- UTF-16
close access b
read f using delimiter linefeed as Unicode text

ファイルをUTF-8で保存しようとしましたか?Unicode textに置き換えることで読めます«class utf8»

于 2012-11-23T08:22:06.107 に答える