私はアクティブレコードによってpostgresデータベースから文字列を取得しています。これをUTF-8コードのリストに変換する必要があります。Ruby on Railsで文字列をRuby on UTF-8コードのリストに変換します。
データベースからフェッチするコードはペルシア語の文字なので、アラビア文字のように見えるはずです。
def convertHex
@user=DoctorProfile.where(id: params[:id])
# [email protected](:first_name)
ar=Array.new
pri=Array.new
[email protected](:first_name)
ar.split(",").map { |s| s.to_s }
ar.each do |p|
pri.push(p.ord.to_s + " , ")
end
# [email protected]("")
# ar = ar.each_byte.map { |b| b.to\_s(16) }.join
#ar.each do |c|
# b=b +','+ c
#end
render json: pri ,status:200
end
私はこの
[
"1590 , "
]
を取得しかし、私はこのような何かしたい:
# find will already return an object, not an array
# note it will throw an exception if user with id doesn't exist
# to get nil instead of exception, use find_by_id(params[:id])
@user = DoctorProfile.find(params[:id])
char_codes = @user.first_name.unpack('U*')
あるいは、もし:あなたはdecodes str (which may contain binary data) according to the format string, returning an array of each value extractedString#unpack()
メソッドを使用することができます
[
"1590 , 2123 , 1112 , ..."
]
こんにちはサンドロこの回答はちょっと混乱していますが、改善できると思います。 (1)適切なインデントが必要です。 (2)1590は有効なASCIIコードではありません(ASCII値は7ビットまたは8ビットです)ので、おそらくASCIIコードではなくUTFコードを探していると思いますが、この問題を明確にする必要があります。 (3)Railsを使わずに純粋なRubyになるようにこの質問を書き直すことは、おそらく変換を別の関数に入れることで可能です。次に、関数がどのように使われているかを示し、関数に与えている実際の入力を示します。 –
はい私はutfではないasciiが残念 – Sandro
1590はペルシャ文字ですが、2123,1112はダミーです、私はこのケースで2日間過ごす、私は絶対に私はこの場合 – Sandro