Excel 2011, Ruby 1.9.2/Sintra 및 문자 인코딩에서 VBA를 해결할 수있는 사람은 누구입니까?Sinatra의 비 라틴어 문자를 Mac Excel 2011에서 보냄
Ruby Sinatra 웹 앱에 요청하는 Mac VBA 스크립트가 있습니다. Excel에서 전달하는 텍스트에 é 같은 문자가 포함되어 있습니다. 불행히도 루비 (버전 1.9.2)는 Excel이 UTF-8로 그들을 보내지 않기 때문에이 문자들에 비참하게 질식합니다.
Sub FetchAddress()
For Each oDest In Selection
With ActiveSheet.QueryTables.Add(Connection:="URL;http://localhost:4567/fetch", Destination:=oDest)
.PostText = "excel_input=" & oDest.Offset(0, -1).Value
.RefreshStyle = xlOverwriteCells
.SaveData = True
.Refresh
End With
Next
End Sub
문자 é z는 등의 다른 쪽 끝을 나오는 다음과 같이
# encoding: utf-8
require 'rubygems'
require 'sinatra'
require "sinatra/reloader" if development?
configure do
class << Sinatra::Base
def options(path, opts={}, &block)
route 'OPTIONS', path, opts, &block
end
end
Sinatra::Delegator.delegate :options
end
options '/' do
response.headers["Access-Control-Allow-Origin"] = "*"
response.headers["Access-Control-Allow-Methods"] = "POST"
halt 200
end
post '/fetch' do
chars = []
params['excel_input'].valid_encoding? #returns false
params['excel_input']
end
는 그리고 내 엑셀 VBA입니다. Excel에서 텍스트 창-1252 http://en.wikipedia.org/wiki/Windows-1252 최종 SNIP로 인코딩처럼
SNIP 그것은 그것은 루비처럼 보이는
텍스트를 윈도우 1252의 z 따라서 인쇄이라고 생각 보인다.
문자의 바이트 표현은 142입니다 (또는 windows-1252에서 Ž). 문제는 처음부터 Excel에서 나에게 전송되는 인코딩을 모른다는 것입니다.
싫어했습니다. 나는 문제가 텍스트가 들어오는 것이 아니라고 생각한다.-1252 ... 어떤 인코딩이 들어 오는지 전혀 모른다. – ewalk
위 코드의 두 가지 문제점 : 1. UTF8은 UTF-8이어야합니다. 2. 매개 변수의 순서는 TO, FROM이어야합니다. – ewalk
이것은 내가 필요한 것에 나를 데려 가기에 충분했다. 나는 입력이 MACROMAN으로 들어오는 것을 알았다. 아아, 여전히 Excel로 제대로 인쇄 할 수 없습니다. – ewalk